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

Визначення енкодера

Тут ви зробите перший крок до створення моделі машинного перекладу: реалізуєте енкодер. Енкодер, який ви реалізуєте, значно простіший за складні моделі, що використовуються в реальних застосунках, як-от сервіс машинного перекладу Google. Але не хвилюйтеся: хоч модель і проста, концепції ті самі, що й у складних моделях. У цьому розділі ми використовуємо префікс en (напр., en_gru) для всього, що стосується енкодера, і de для всього, що стосується декодера (напр., de_gru).

Ви побачите, що ми вибираємо en_vocab меншим (150), ніж фактичне значення (228), яке ми отримали. Зменшення словника зменшує споживання пам'яті моделью. Невелике скорочення словника прийнятне, адже ми усуваємо найрідкісніші слова. Для завдань машинного перекладу рідкісні слова зазвичай мають меншу цінність, ніж поширені.

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

Machine Translation з Keras

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

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

  • Визначте шар Input для входу з розміром словника en_vocab і довжиною послідовності en_len, використовуючи аргумент shape.
  • Визначте шар keras.layers.GRU з hsize прихованими одиницями, який повертає свій стан.
  • Отримайте виходи з шару GRU, подавши en_inputs, і присвойте стан GRU змінній en_state, а вихід — en_out.
  • Визначте keras.models.Model, у якої вхід — це en_inputs, а вихід — en_state, і виведіть підсумок моделі.

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

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

import tensorflow.keras as keras

en_len = 15
en_vocab = 150
hsize = 48

# Define an input layer
en_inputs = keras.layers.____(____=____)
# Define a GRU layer which returns the state
en_gru = ____(____, ____=____)
# Get the output and state from the GRU
____, ____ = ____(____)
# Define and print the model summary
encoder = ____(inputs=____, ____=____)
print(encoder.____)
Редагувати та запускати код