НачатьНачать бесплатно

Обучение модели с валидацией

В этом упражнении вы обучите модель с помощью метода Teacher Forcing и выполните шаг валидации. Обучение будет проходить на протяжении нескольких эпох и нескольких итераций. В конце каждой эпохи вы запустите шаг валидации и получите его результаты.

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

Это упражнение является частью курса

Машинный перевод с Keras

Посмотреть курс

Инструкции к упражнению

  • Извлеките входы декодера (все слова, кроме последнего) и выходы декодера (все слова, кроме первого) из de_xy.
  • Обучите модель на одном батче данных.
  • Сформируйте входы и выходы декодера для валидационных данных по аналогии с тем, как вы делали это для обучающих данных.
  • Оцените модель на валидационном наборе данных, чтобы получить значение потерь и точность на валидации.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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