私は現在、chainerのLSTMを使って自然言語処理のプログラムを作成しようとしています。
LinearやCNNを主にやってきたので、RNN(LSTM)のmodel定義について詳しくありませんので、質問したいことがあります。
現在、LSTMのmodelを次のように定義しています。
python
1class LSTM(Chain): 2 def __init__(self, in_size, hidden_size, out_size): 3 クラスの初期化 4 :param in_size: 入力層のサイズ 5 :param hidden_size: 隠れ層のサイズ 6 :param out_size: 出力層のサイズ 7 super(LSTM, self).__init__( 8 xh=L.Linear(in_size, hidden_size), 9 hh=L.LSTM(hidden_size, hidden_size), 10 hy=L.Linear(hidden_size, out_size) 11 )
ここで、LSTMのモデルは以下の図のように時系列的に次の時間のNNに伝播していくものであると認識しています。
【質問1】
ところが、上記のmodelでは、1つの時間の分のNNしかありません。
これは、計測時間の数だけ自動的に生成されて次の時間のNNに伝播するものと認識していますが、その認識に間違いないでしょうか。
【質問2】
上記のmodelの場合、in_size(入力層のサイズ)とは入力ベクトルの次元数、hidden_size(隠れ層のサイズ)はLSTMのベクトルの次元数、out_size(出力層のサイズ)出力ベクトルの次元数と認識していますが、その認識に間違いないでしょうか。
【質問3】
LSTMの最後の層を全結合層と言っているようですが、それは上記のmodelのhyのことだと認識しています。その認識に間違いないでしょうか。
LSTMには詳しくないので、よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。