वैलिडेशन के साथ मॉडल को ट्रेन करना
यहाँ आप Teacher Forcing का उपयोग करके मॉडल को ट्रेन करेंगे और एक वैलिडेशन स्टेप भी चलाएँगे। आप मॉडल को कई epochs और कई iterations तक ट्रेन करेंगे। फिर हर epoch के अंत में, आप वैलिडेशन स्टेप चलाकर उसके परिणाम प्राप्त करेंगे.
इसके लिए आपको en_text (अंग्रेजी वाक्य), fr_text (फ्रेंच वाक्य), sents2seqs() फंक्शन और nmt_tf (कंपाइल्ड मॉडल) दिया गया है। साथ ही tr_en और tr_fr (ट्रेनिंग डेटा) और v_en तथा v_fr (वैलिडेशन डेटा) पहले से लोडेड हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Keras के साथ Machine Translation
अभ्यास निर्देश
de_xyसे decoder inputs (आखिरी शब्द को छोड़कर सभी) और outputs (पहले शब्द को छोड़कर सभी) निकालें।- डेटा के एक single batch पर मॉडल को ट्रेन करें।
- वैलिडेशन डेटा से decoder inputs और outputs उसी तरह बनाएँ जैसे आपने ट्रेनिंग डेटा के लिए किया था।
- वैलिडेशन डेटासेट पर मॉडल का मूल्यांकन करें ताकि validation loss और accuracy प्राप्त हो सके।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
for ei in range(n_epochs):
for i in range(0,train_size,bsize):
en_x = sents2seqs('source', tr_en[i:i+bsize], onehot=True, reverse=True)
de_xy = sents2seqs('target', tr_fr[i:i+bsize], onehot=True)
# Create a single batch of decoder inputs and outputs
de_x, de_y = ____[:,____,:], de_xy[:,____,:]
# Train the model on a single batch of data
nmt_tf.____([____,____], de_y)
v_en_x = sents2seqs('source', v_en, onehot=True, reverse=True)
# Create a single batch of validation decoder inputs and outputs
v_de_xy = ____('target', ____, onehot=____)
v_de_x, v_de_y = ____[____], v_de_xy[____]
# Evaluate the trained model on the validation data
res = nmt_tf.evaluate([____,____], ____, batch_size=valid_size, verbose=0)
print("{} => Loss:{}, Val Acc: {}".format(ei+1,res[0], res[1]*100.0))