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

Connected

演習

エンコーダの定義

ここでは、機械翻訳モデルを作る最初の一歩として、エンコーダを実装します。これから実装するエンコーダは、Google の機械翻訳サービスのような実運用の複雑なモデルに比べるととてもシンプルです。ただしご安心ください。モデル自体は簡単でも、基礎となる考え方は複雑なモデルと同じです。本コースでは、エンコーダに関するものを示す接頭辞として en(例: en_gru)、デコーダに関するものを示す接頭辞として de(例: de_gru)を使います。

ここでは、実際に得られた値(228)より小さい 150 を en_vocab に設定しています。語彙数を小さくすると、モデルのメモリ使用量を抑えられます。まれな単語を削るだけなので、語彙を少し減らすのは問題ありません。機械翻訳のタスクでは、一般的に、まれな単語はよく使われる単語ほど重要ではないからです。

指示

100 XP
  • 語彙サイズ en_vocab、系列長 en_len をもつ入力に対して、shape 引数を使って Input レイヤーを定義してください。
  • 隠れユニット数が hsize で、状態を返す keras.layers.GRU レイヤーを定義してください。
  • en_inputs を GRU レイヤーに渡して出力を取得し、GRU の状態を en_state に、出力を en_out に代入してください。
  • 入力を en_inputs、出力を en_state とする keras.models.Model を定義し、モデルのサマリーを出力してください。