初学者向け【実装】攻略ノートです。『ゼロつく2』学習の補助となるように適宜解説を加えています。本と一緒に読んでください。本の内容を1つずつ確認しながらゆっくりと組んでいきます。この記事は、7.3.2項「Decoderクラス」の内容です。seq2seqの出力側のRNNであるDecoderの処理を解説して、Pythonで実装します。Decoderクラス出力側のRNNであるDecoder(デコーダー)を実装します。Decoderは、Encoderから受け取った隠れ状態(エンコードされた情報)を別の形式の時系列データにデコードします。npDecoderの実装には、RNNで用いるレイヤを利用します。そのため、各レイヤのクラス定義を再実行するか、次の方法で実装済みのクラスを読み込む必要があります。各レイヤのクラスは、「common」フォルダ内の「time_layers.py」ファイルに実装されています。各レイヤについては、5.4.2.1項、6.3.1.項、5.4.2.2項の記事を参照してください。「deep-learning-from-scratch-2-master」フォルダにパスを設定しておく必要があります。図7-8・7-9を参考にして、Decoderで行う処理を確認していきます。・ネットワークの設定まずは、RNNを構築します。データとパラメータの形状に関する値を設定して、入力データを簡易的に作成します。時系列サイズ$T$(とたぶん$D$も)は、Encoderと同じ値である必要はありません。x_{N-1,T-1})$です。$n$番目のバッチデータの時刻$t$の入力データ$x_{n,t}$は、単語の種類(語彙)を示す単語IDです。単語IDは、語彙数を$V$として0から$V-1$の整数です。