1. 学ぶ
  2. /
  3. コース
  4. /
  5. Kerasで学ぶMachine Translation

Connected

演習

デコーダーの定義

この演習では、デコーダーを実装し、エンコーダーの入力からデコーダーの GRU 出力までをつなぐエンドツーエンドのモデルを定義します。デコーダーはエンコーダーと同じモデル構成を使いますが、エンコーダーに与える入力や状態とは異なる点があります。たとえば、デコーダーはエンコーダーが生成したコンテキストベクトルを、入力としてもデコーダーの初期状態としても利用します。エンコーダーに関するものは接頭辞 en(例: en_gru)、デコーダーに関するものは de(例: de_gru)を付けることを思い出してください。

デコーダーの実装には RepeatVector と GRU レイヤーを使います。

この演習では、すでに実装済みのエンコーダーモデルと各種レイヤーが用意されています。たとえば、エンコーダーの入力は en_inputs、コンテキストベクトルは en_state として与えられています。また、GRU と Model オブジェクトはすでにインポート済みです。

指示

100 XP
  • en_state を入力として受け取り、それを fr_len 回繰り返す RepeatVector レイヤーを定義します。
  • 隠れユニット数を hsize に設定し、生成されたすべての出力を返す GRU レイヤー decoder_gru を定義します。
  • de_inputs を入力として与え、デコーダーの初期状態に en_state を設定して、decoder_gru レイヤーの出力を取得します。
  • en_inputs を入力、gru_outputs を出力とするモデルを定義します。