वैलिडेशन के साथ मॉडल ट्रेन करना
यहाँ आप वैलिडेशन स्टेप के साथ न्यूरल मशीन ट्रांसलेटर मॉडल को ट्रेन करना सीखेंगे.
आपको पिछले चैप्टर में बनाया गया nmt मॉडल दिया गया है. इसके अलावा, आप मॉडल को Udacity Github Repo से लिए गए अंग्रेज़ी और फ़्रेंच वाक्यों पर ट्रेन करेंगे. आपको पिछले अभ्यास से ट्रेनिंग अंग्रेज़ी टेक्स्ट (tr_en) और फ़्रेंच टेक्स्ट (tf_fr) के साथ-साथ वैलिडेशन अंग्रेज़ी टेक्स्ट (v_en) और फ़्रेंच टेक्स्ट (v_fr) भी दिए गए हैं.
मॉडल को ट्रेन करने में थोड़ा समय लगता है, इसलिए आपका कोड चलने में कुछ ज़्यादा समय लेगा.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Keras के साथ Machine Translation
अभ्यास निर्देश
sents2seqsफंक्शन का उपयोग करकेv_enऔरv_frको ट्रांसफॉर्म करके वैलिडेशन डेटा बनाएँ.sents2seqsफंक्शन का उपयोग कर सही तरह से ट्रांसफॉर्म किया हुआ इनपुट और आउटपुट का बैच प्राप्त करें.nmtको एक सिंगल बैच पर ट्रेन करने के लिए इनपुट (en_x) और आउटपुट (de_y) का उपयोग करें.v_en_xऔरv_de_yकोvalid_sizeकोbatch_sizeरखते हुएnmtमॉडल के मूल्यांकन के लिए उपयोग करें और वैलिडेशन एक्यूरसी प्राप्त करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Convert validation data to onehot
v_en_x = ____(____, ____, onehot=____, reverse=____)
v_de_y = ____(____, ____, onehot=True)
n_epochs, bsize = 3, 250
for ei in range(n_epochs):
for i in range(0,train_size,bsize):
# Get a single batch of inputs and outputs
en_x = ____(____, tr_en[____:____], onehot=____, reverse=____)
de_y = sents2seqs(____, tr_fr[____:____], onehot=True)
# Train the model on a single batch of data
nmt.____(____, ____)
# Evaluate the trained model on the validation data
res = nmt.evaluate(____, ____, batch_size=valid_size, verbose=0)
print("{} => Loss:{}, Val Acc: {}".format(ei+1,res[0], res[1]*100.0))