Keras के साथ Machine Translation
Thushan Ganegedara
Data Scientist and Author



इनपुट लेता है
आउटपुट देता है
भविष्यवाणी किए शब्द और स्टेट को मॉडल में दोबारा इनपुट के रूप में दें



sos अनुवाद की शुरुआत को चिन्हित करता है (यानी फ्रेंच वाक्य).
sos को डीकोडर का पहला शब्द बनाकर लगातार प्रेडिक्ट करेंeos अनुवाद के अंत को दर्शाता है.
eos प्रेडिक्ट करे तो प्रेडिक्शन रुकेंसुरक्षा के लिए अधिकतम आउटपुट लंबाई तय करें
लेयर्स और Model इम्पोर्ट करना
# Import Keras layers
import tensorflow.keras.layers as layers
from tensorflow.keras.models import Model
मॉडल लेयर्स परिभाषित करना
en_inputs = layers.Input(shape=(en_len,en_vocab))
en_gru = layers.GRU(hsize, return_state=True)
en_out, en_state = en_gru(en_inputs)
Model ऑब्जेक्ट परिभाषित करना
encoder = Model(inputs=en_inputs, outputs=en_state)
Input लेयर्स परिभाषित करनाde_inputs = layers.Input(shape=(1, fr_vocab))
de_state_in = layers.Input(shape=(hsize,))
layers परिभाषित करनाde_gru = layers.GRU(hsize, return_state=True) de_out, de_state_out = de_gru(de_inputs, initial_state=de_state_in)de_dense = layers.Dense(fr_vocab, activation='softmax') de_pred = de_dense(de_out)
Model परिभाषित करनाdecoder = Model(inputs=[de_inputs, de_state_in], outputs=[de_pred, de_state_out])
l1 के वेट्स लेंw = l1.get_weights()l2 के वेट्स w से सेट करेंl2.set_weights(w)GRU, Decoder GRU और Decoder Denseen_gru_w = tr_en_gru.get_weights()
en_gru.set_weights(en_gru_w)
इसे ऐसे भी लिख सकते हैं,
en_gru.set_weights(tr_en_gru.get_weights())
en_sent = ['the united states is sometimes chilly during
december , but it is sometimes freezing in june .']
en_seq = sents2seqs('source', en_st, onehot=True, reverse=True)
de_s_t = encoder.predict(en_seq)
de_seq = word2onehot(fr_tok, 'sos', fr_vocab)
fr_sent = ''for _ in range(fr_len): de_prob, de_s_t = decoder.predict([de_seq,de_s_t])de_w = probs2word(de_prob, fr_tok)de_seq = word2onehot(fr_tok, de_w, fr_vocab)if de_w == 'eos': break fr_sent += de_w + ' '
Keras के साथ Machine Translation