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

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

Тут ви навчитеся тренувати модель нейронного машинного перекладу з кроком валідації.

Вам надано модель nmt, яку ви створили в попередньому розділі. Крім того, ви тренуватимете модель на англійських та французьких реченнях із Udacity Github Repo. Ви маєте тренувальні англійські тексти (tr_en) і французькі тексти (tf_fr), а також валідаційні англійські тексти (v_en) і французькі тексти (v_fr) з попередньої вправи.

Навчання моделі займає певний час, тож ваш код виконуватиметься трохи довше.

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

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