如何在张量流中输出lstm门的状态?

时间:2016-12-01 11:05:30

标签: tensorflow recurrent-neural-network lstm

我希望看到lstm门的激活状态,但似乎要获得门状态并将它们输出到文件并不容易。

我可以在BasicLSTM中使用“tf.Print”功能,如下所示:
gate = tf.Print(gate, [sigmoid(gate)])
但是“tf.Print”在终端显示这个门,如:
gate name : [0.5222222, 0.444444, 0.3333333, ...]
我不能得到这个门的所有价值,只是“......”。我必须使用redirectory将它们输出到文件。

感谢@ben,我可以使用tf.Print(gate, [sigmoid(gate)], summarize=10000000)来解决“......”。但是还需要重定向目录才能将它们输出到文件中。

我还尝试在BasicLSTM中为门指定名称:
gate = tf.identity(gate_tmp, "gate")
那么,我可以用名字来获得这个张量 gate = tf.get_default_graph().get_tensor_by_name("model/RNN/while/BasicLSTMCell/gate:0")
但是当我sess.run(gate)时 发生错误,“门不可取”

所以我将“gate”改为变量。
gate = tf.Variable(gate, trainable=False)
但是出现了一个新的错误,“节点model_1 / Variable_1 / Assign的所有输入必须来自同一帧。”

那么,我该怎样做才能获得LSTM门的状态?并将它们输出到文件?

1 个答案:

答案 0 :(得分:0)

tf.Print支持一个特殊参数"总结"控制印刷元素的数量:例如你可以用

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