パート2:フルモデルの定義
Google Neural Machine Translator のあるバリアントは、英仏翻訳タスクだけでも学習に約6日、96個のGPUを要したことをご存知でしたか。
この演習では、これと似ていますが、ずっとシンプルなエンコーダ・デコーダ型のニューラル機械翻訳モデルを定義します。具体的には、これまでに定義した入出力を使って Keras の Model オブジェクトを作成し、指定された損失関数とオプティマイザでコンパイルします。
ここでは、すでに定義済みの en_inputs(エンコーダの入力層)、en_out と en_state(エンコーダ GRU の出力)、de_out(デコーダ GRU の出力)、de_pred(デコーダの予測)が提供されています。
この演習はコースの一部です
Kerasで学ぶMachine Translation
演習の手順
en_inputsを入力、デコーダの予測(de_pred)を出力とする Keras のModelを定義します。- 定義したモデルに対して
<model>.compileを呼び出し、オプティマイザに'adam'、損失にクロスエントロピー、評価指標に精度(acc)を指定してコンパイルします。 - モデルのサマリーを表示します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
from tensorflow.keras.models import Model
# Define a model with encoder input and decoder output
nmt = ____(____=____, outputs=____)
# Compile the model with an optimizer and a loss
nmt.____(optimizer=____, ____='categorical_crossentropy', metrics=[____])
# View the summary of the model
nmt.____()