मॉडल को ट्रेन करना
आप इस अभ्यास में पहले से लागू किए गए मॉडल को ट्रेन करेंगे। क्या आप जानते हैं कि Google का encoder-decoder आधारित मशीन ट्रांसलेशन मॉडल ट्रेन होने में 2–4 दिन लगा?
इस अभ्यास के लिए आप 1500 वाक्यों (अर्थात् en_text और fr_text) के छोटे डेटासेट का उपयोग करके मॉडल को ट्रेन करेंगे। यह मात्रा अच्छे प्रदर्शन के लिए पर्याप्त नहीं होगी, लेकिन तरीका वही रहेगा। फर्क बस इतना है कि अधिक डेटा पर ज़्यादा समय तक ट्रेन करना होगा। आपको मॉडल nmt और पहले लागू किया गया sents2seqs() फंक्शन उपलब्ध कराया गया है। इस अभ्यास में बेहतर प्रदर्शन के लिए आप encoder टेक्स्ट को reverse करेंगे। यहाँ en_x encoder इनपुट को दर्शाता है, जबकि de_x decoder इनपुट को.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Keras के साथ Machine Translation
अभ्यास निर्देश
sents2seqs()फंक्शन का उपयोग करके encoder इनपुट्स का एक सिंगल बैच प्राप्त करें (English वाक्य indexiसेi+bsizeतक)। इनपुट्स को reverse और onehot-encode करना है.sents2seqs()फंक्शन का उपयोग करके decoder outputs का एक सिंगल बैच प्राप्त करें (French वाक्य indexiसेi+bsizeतक)। इनपुट्स को onehot-encode करना है.en_xऔरde_yवाले एक सिंगल बैच डेटा पर मॉडल को ट्रेन करें.bsizeकेbatch_sizeके साथ मॉडल evaluate करकेen_xऔरde_yके लिए evaluation metrics प्राप्त करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
n_epochs, bsize = 3, 250
for ei in range(n_epochs):
for i in range(0,data_size,bsize):
# Get a single batch of encoder inputs
en_x = ____('source', ____, onehot=____, reverse=____)
# Get a single batch of decoder outputs
de_y = sents2seqs('target', fr_text[____], onehot=____)
# Train the model on a single batch of data
nmt.____(____, ____)
# Obtain the eval metrics for the training data
res = nmt.____(____, de_y, batch_size=____, verbose=0)
print("{} => Train Loss:{}, Train Acc: {}".format(ei+1,res[0], res[1]*100.0))