我目前正在尝试理解outputs
中states
函数的tf.nn.rnn
和tensorflow
的含义:
outputs, states = tf.nn.rnn(lstm_cell, x, dtype=tf.float32)
事实上,关于以下教程Understanding LSTM,我想知道与这些变量相对应的内容。
在我看来,outputs
对应隐藏状态(在上一个链接中表示为h_t
),但我不确定。
因此,我了解outputs
是time_steps
形状(batch_size, n_hidden)
张量的列表。但为什么states
是2
形状(batch_size, n_hidden)
张量的列表。它只是最后一步的细胞状态吗?
答案 0 :(得分:1)
这似乎是个老问题。对不起,如果你已经弄清楚了。
outputs
是来自" top"的值。图中的LSTM单位。这是LSTM图层的总输出。
正如您在问题中所建议的那样,隐藏状态实际上是从一个时间段移动到下一个时间段的时间隐藏状态。它们是C_t
和h_t
值,它们沿着时间轴移动,作为输出/输入到展开的LSTM图层。这就是为什么你得到2
个尺寸为(batch_size,n_hidden)