ПочатиПочніть безкоштовно

Навчання моделі з валідацією

Тут ви навчатимете модель із використанням Teacher Forcing і також виконаєте крок валідації. Ви запустите навчання на кілька епох і кілька ітерацій. Наприкінці кожної епохи ви запустите крок валідації та отримаєте результати.

Для цього вам надано en_text (англійські речення), fr_text (французькі речення), функцію sents2seqs() і nmt_tf (скомпільовану модель). Також уже завантажено tr_en і tr_fr (тренувальні дані) та v_en і v_fr (валідаційні дані).

Ця вправа є частиною курсу

Machine Translation з Keras

Переглянути курс

Інструкції до вправи

  • Видобудьте входи декодера (усі слова, окрім останнього) та виходи (усі слова, окрім першого) з de_xy.
  • Навчіть модель на одному пакеті даних (single batch).
  • Створіть входи та виходи декодера для валідаційних даних так само, як ви зробили для тренувальних даних.
  • Оцініть модель на валідаційному наборі, щоб отримати валідаційну втрату та точність.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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))
Редагувати та запускати код