2016-12-01 19 views
0

lstmゲートのアクティブ化状態を見たいですが、ゲート状態を取得してファイルに出力するのは容易ではないようです。
テンソルフローでlstmゲートの状態を出力する方法は?

私はBasicLSTMで次のように「tf.Print」機能を使用することができます。
gate = tf.Print(gate, [sigmoid(gate)])
しかし、「tf.Print」ディスプレイこのゲートを端末内のように:
gate name : [0.5222222, 0.444444, 0.3333333, ...]
私はすべての値を取得することはできませんこのゲート、ちょうど "..."。そして私はそれらをファイルに出力するためにリダイレクトを使う必要があります。


@benのおかげで、私は解決するためにtf.Print(gate, [sigmoid(gate)], summarize=10000000)を使用することができます "..."。しかし、それらをファイルに出力するためには、リダイレクトも必要です。


私もBasicLSTMでゲートに名前を割り当てよう:I sess.run(gate)
エラーが発生しましたとき、私は
gate = tf.get_default_graph().get_tensor_by_name("model/RNN/while/BasicLSTMCell/gate:0")
を使用して名前でこのテンソルを得ることができますが、その後、
gate = tf.identity(gate_tmp, "gate")
、 "ゲートはフェッチ可能ではありません"

したがって、 "ゲート"を変数に変更します。
gate = tf.Variable(gate, trainable=False)
新しいエラーが発生しました。「ノードmodel_1/Variable_1/Assignへのすべての入力は、同じフレームからのものでなければなりません。」

LSTMゲートの状態を取得するにはどうすればよいですか?それらをファイルに出力しますか?

答えて

0

tf.Printは、印刷された要素の数を制御する特別なパラメータ "summarize"をサポートしています。あなたは使用することができます

tf.Print(gate, [sigmoid(gate)], summarize=10000000) 
+0

それは働いていますが、ファイルに出力したいです。リダイレクト以外の方法はありますか? –

関連する問題