1

組み込みの LSTM セルは、callable を提供します。ただし、LSTM レイヤーの前後に静的レイヤーを追加し、backprop を使用してすべてをトレーニングしたいと考えています。それは可能ですか?

4

1 に答える 1

3

セルcallableは、入力tf.Tensorと現在の状態を として受け取り、出力と新しい状態を としてtf.Tensor返す関数です。入力/出力テンソルと状態テンソルについて特別なことは何もありません: これらは、他の TensorFlow 操作への入力として計算および/または使用できます。tf.Tensortf.Tensor

例として、次のptb_word_lm.pyモデルを見てください。

for time_step in range(num_steps):
  # ...
  (cell_output, state) = cell(inputs[:, time_step, :], state)
  outputs.append(cell_output)

ここで、inputsは LSTM の 1 つのセルの入力を取得するためにスライスが取得される 3 次元テンソルであり、state最初を使用して計算されcell.zero_state()、その後の各反復では前の反復からの状態が使用されます。

inputsテンソルは操作の結果です。リストはtf.nn.embedding_lookup()後で連結され、損失計算への​​入力として使用されます。TensorFlow は、RNN とモデル変数への埋め込みルックアップを介して損失からバックプロップします。outputs

于 2016-03-26T22:12:16.137 に答える