gra*_*tur 5 python lstm tensorflow
我正在使用TensorFlow LSTM作为语言模型(我有一系列单词并希望预测下一个单词),当我运行语言模型时,我想要打印出忘记,输入的值,每一步都转换和输出门.我该怎么做呢?
通过检查https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/rnn/python/ops/rnn_cell.py中的代码,我看到LayerNormBasicLSTMCell该类有一个call包含i, j, f, o我想要的变量的方法打印出来.
def call(self, inputs, state):
"""LSTM cell with layer normalization and recurrent dropout."""
c, h = state
args = array_ops.concat([inputs, h], 1)
concat = self._linear(args)
i, j, f, o = array_ops.split(value=concat, num_or_size_splits=4, axis=1)
if self._layer_norm:
i = self._norm(i, "input")
j = self._norm(j, "transform")
f = self._norm(f, "forget")
o = self._norm(o, "output")
g = self._activation(j)
if (not isinstance(self._keep_prob, float)) or self._keep_prob < 1:
g = nn_ops.dropout(g, self._keep_prob, seed=self._seed)
new_c = (c * math_ops.sigmoid(f + self._forget_bias)
+ math_ops.sigmoid(i) * g)
if self._layer_norm:
new_c = self._norm(new_c, "state")
new_h = self._activation(new_c) * math_ops.sigmoid(o)
new_state = core_rnn_cell.LSTMStateTuple(new_c, new_h)
return new_h, new_state
Run Code Online (Sandbox Code Playgroud)
但是,有一种简单的方法可以打印出这些变量吗?或者我必须在我运行LTSM的脚本中基本上重新创建此方法中的相关代码行?
我曾经在 git issues 中问过类似的问题。而响应是原始细胞只返回c和h(这也是每一步的输出y)。如果你想获取内部变量,你需要自己做。
这是链接: https: //github.com/tensorflow/tensorflow/issues/5731
| 归档时间: |
|
| 查看次数: |
820 次 |
| 最近记录: |