これは512単位のLSTM層です。
BasicLSTMCell
は、抽象クラスRNNCell
を実装しています。ドキュメントから:
RNNセルを表す抽象オブジェクト。
すべてのRNNCellは、以下のプロパティを持っていて、(output, next_state) = call(input, state)
の署名でcall
を実装している必要があります。
[...]
このセルの定義は、文献で使用されている定義とは異なります。文献では、「セル」は単一のスカラ出力を持つオブジェクトを指します。 この定義は、そのようなユニットの水平配列を指します。
逆伝搬トラフの時間のための展開とともにLSTM層を作成するための一般的な方法は、次のいずれかです。
lstm_cell = tf.contrib.rnn.BasicLSTMCell(512)
outputs, final_state = tf.nn.static_rnn(cell=lstm_cell,
dtype=tf.float32,
inputs=some_input_sequence)
:
some_input_sequence
がnum_steps
テンソルのリストですサイズの合計[batch_size, input_size]
outputs
は、それぞれの後のレイヤの出力を含みますsome_input_sequence
の要素。したがって、それは再び[batch_size, 512]
のnum _steps
要素のリストです(ここで512はセルの単位数です)。
- は、シーケンス全体が処理された後の状態を含みます。特に、LSTMの場合は、
c
とh
の2つの要素(LSTMの2つの状態)を持つ名前付きタプルです。