2017-09-15 5 views
1

テンソルフローではBasicLSTMCellと呼ばれる1stmの実装があり、これはtf.contrib.rnn.BasicLSTMCellにあります。また、LSTMセルのユニット数を意味するパラメータnum_unitsを持っています。しかし、私はそれが何を意味するのか分からない。tf.contrib.rnn.BasicLSTMCは単一のLSTMユニットまたはLSTMレイヤーですか?

私はこのようなLSTMセル定義する場合:

lstm_cell = tf.contrib.rnn.BasicLSTMCell(512). 

どのように見えるlstm_cellありませんか?これはlstmノードまたは512ノードのlstmレイヤーです。これについて教えてもらえますか?

答えて

2

これは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_sequencenum_stepsテンソルのリストですサイズの合計[batch_size, input_size]
  • outputsは、それぞれの後のレイヤの出力を含みますsome_input_sequenceの要素。したがって、それは再び[batch_size, 512]num _steps要素のリストです(ここで512はセルの単位数です)。
  • は、シーケンス全体が処理された後の状態を含みます。特に、LSTMの場合は、chの2つの要素(LSTMの2つの状態)を持つ名前付きタプルです。
関連する問題