Views
No views yet
| Architecture | Transformer encoder (3 blocks, d_model 256, 8 heads, FFN 1024) + global average pooling + softmax |
| Parameters | 15.17M |
| Tokenizer | Word-level TextVectorization, vocab 50k, fixed maxlen=128 (no char n-grams — static shapes for TPU) |
| Input | Sentence as token ids, int32, shape (128,) |
| Output | Softmax logits over 19 languages |
| Framework | TensorFlow 2.20 / Keras 3 |
sentences.csv, 13.5M sentences), filtered to the 19 languages above and capped per language.valid sentences: 2,870,490 (19 languages)
eng: 250,000 ita: 250,000
spa: 250,000 por: 250,000
fra: 250,000 tur: 250,000
deu: 250,000 nld: 200,710
rus: 250,000 pol: 137,076
jpn: 248,866 cmn: 88,787
ara: 68,485 ell: 42,264
vie: 32,430 bul: 25,698
hin: 16,475 tha: 6,848
urd: 2,8511python infer.py --model artifacts/model.keras \
2 "text on english" "русский текст" "今日の天気は?"text on english -> eng (1.000), русский текст -> rus (0.967).1import json
2import numpy as np
3import tensorflow as tf
4
5lang_map = json.load(open("artifacts/languages.json"))
6index_to_lang = {v: k for k, v in lang_map.items()}
7
8vocab = json.load(open("artifacts/vocab.json"))
9vectorizer = tf.keras.layers.TextVectorization(
10 max_tokens=len(vocab), output_mode="int",
11 output_sequence_length=128, standardize="lower_and_strip_punctuation",
12)
13vectorizer.set_vocabulary(vocab)
14
15model = tf.keras.models.load_model("artifacts/model.keras")
16tokens = tf.cast(vectorizer(tf.constant(["hello world"])), tf.int32)
17logits = model.predict(tokens)
18print(index_to_lang[int(np.argmax(logits[0]))])