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

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

В этом упражнении вы узнаете, как обучать модель нейронного машинного перевода с шагом валидации.

Вам предоставлена модель nmt, созданная в предыдущей главе. Вы будете обучать её на английских и французских предложениях из репозитория Udacity на GitHub. Из предыдущего упражнения вам доступны: обучающие тексты на английском (tr_en) и французском (tf_fr), а также валидационные тексты на английском (v_en) и французском (v_fr).

Обучение модели занимает некоторое время, поэтому выполнение кода может потребовать чуть больше времени, чем обычно.

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

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

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

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

  • Создайте валидационные данные, преобразовав v_en и v_fr с помощью функции sents2seqs.
  • Получите корректно преобразованный батч входных и выходных данных с помощью функции sents2seqs.
  • Используйте входные данные (en_x) и выходные данные (de_y), чтобы обучить nmt на одном батче.
  • Используйте 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))
Редактировать и запускать код