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

Обучение модели

Знаете ли вы, что в 2017 году Google Translate ежедневно обслуживал более 500 миллионов пользователей?

В этом упражнении вы обучите свою первую модель с использованием метода Teacher Forcing. Этот метод широко применяется в моделях типа «последовательность в последовательность» — например, в нейронных машинных переводчиках — для повышения качества обучения.

Вам будет предоставлена функция sents2seqs(), английские предложения en_text и французские предложения fr_text.

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

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

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

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

  • Получите входные данные декодера, содержащие последовательности французских слов в формате прямого кодирования (кроме последнего слова в каждой последовательности).
  • Получите выходные данные декодера, содержащие последовательности французских слов в формате прямого кодирования (кроме первого слова в каждой последовательности).
  • Обучите модель на одном пакете данных.
  • Получите метрики качества (потери и точность) для обучающих данных en_x, de_x и de_y.

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

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

n_epochs, bsize = 3, 250

for ei in range(n_epochs):
  for i in range(0,data_size,bsize):
    en_x = sents2seqs('source', en_text[i:i+bsize], onehot=True, reverse=True)
    de_xy = sents2seqs('target', fr_text[i:i+bsize], onehot=True)
    # Separate the decoder inputs from de_xy
    de_x = ____[:,____,:]
    # Separate the decoder outputs from de_xy
    de_y = ____[____]
    # Train the model on a single batch of data    
    nmt_tf.____([____,____], ____)    
    # Obtain the eval metrics for the training data
    res = _____.evaluate([____,____], ____, batch_size=bsize, verbose=0)
    print("{} => Train Loss:{}, Train Acc: {}".format(ei+1,res[0], res[1]*100.0))  
Редактировать и запускать код