組み込みの LSTM セルは、callable を提供します。ただし、LSTM レイヤーの前後に静的レイヤーを追加し、backprop を使用してすべてをトレーニングしたいと考えています。それは可能ですか?
1 に答える
3
セルcallable
は、入力tf.Tensor
と現在の状態を として受け取り、出力と新しい状態を としてtf.Tensor
返す関数です。入力/出力テンソルと状態テンソルについて特別なことは何もありません: これらは、他の TensorFlow 操作への入力として計算および/または使用できます。tf.Tensor
tf.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 に答える