Визначення енкодера
Тут ви зробите перший крок до створення моделі машинного перекладу: реалізуєте енкодер. Енкодер, який ви реалізуєте, значно простіший за складні моделі, що використовуються в реальних застосунках, як-от сервіс машинного перекладу 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.____)