【发布时间】:2019-05-31 15:52:20
【问题描述】:
我目前正在使用 keras 中的循环 LSTM 细胞。 为了分析我的网络,我想在时间序列预测期间查看 LSTM 单元中的 i、c、o 和 f 值。
基本上,我想要一个记录张量,它在循环计算期间记录内部 LSTM 单元的值。
我已经尝试简单地打印出这些值,但我认为由于代码仅在编译时运行并且未包含在图表中,因此我没有得到预期的行为。据我了解,TF 的内部张量是 declerativ 并且不会在会话之外保存任何数据。
我还尝试修改完整的 LSTM 类以拥有一个日志变量,但我没有让它工作。我目前滞后于对代码结构的完整了解,无法找到输出这些值的方法。
基本上我想记录这4个值,位于LSTMCell的调用函数中:
i = self.recurrent_activation(x_i + K.dot(h_tm1_i ,self.recurrent_kernel_i))
f = self.recurrent_activation(x_f + K.dot(h_tm1_f,self.recurrent_kernel_f))
c = f * c_tm1 + i * self.activation(x_c + K.dot(h_tm1_c, self.recurrent_kernel_c))
o = self.recurrent_activation(x_o + K.dot(h_tm1_o, self.recurrent_kernel_o)
keras 中是否有一种简单的内置方法,可以在循环/展开计算期间记录内部 LSTM 单元数据?如果没有,最好的方法是什么,从哪里开始?是否有不同的方法或库来添加日志记录功能?
【问题讨论】:
标签: python tensorflow keras lstm