gpt4 book ai didi

tensorflow - TensorFlow 中 MultiRNNCell 的 state_size 是多少?

转载 作者:行者123 更新时间:2023-12-03 00:45:33 29 4
gpt4 key购买 nike

BasicLSTM 单元的配置如下:

...
num_layers = 2
num_steps = 10
hidden_size = 200
...

我使用2隐藏层模型:

lstm_cell = rnn_cell.BasicLSTMCell(hidden_size, forget_bias=0.0) 
cell = rnn_cell.MultiRNNCell([lstm_cell] * 2)

什么是cell.state_size

我得到的尺寸是 30 x 800,但我不明白它是怎么来的?

PS:引用https://github.com/tensorflow/tensorflow/blob/97f585d506cccc57dc98f234f4d5fcd824dd3c03/tensorflow/python/ops/rnn_cell.py#L353中的源码

它似乎将 statesize 返回为 2 *unitsize。但为什么状态大小应该是单元大小的两倍呢?

最佳答案

对于单个 BasicLSTMCell,在您的情况下,状态是 (c=200, h=200) 的元组。 c 是 200 个单元(神经元)的细胞状态,h 是 200 个单元的隐藏状态。

为了理解这一点,请考虑一个普通的 RNN 单元。它只有一个隐藏状态从一次步骤传递到下一步。在 TensorFlow 中实现的 BasicRNNCell 就是这种情况。如果执行 tf.nn.rnn_cell.BasicRNNCell(200),其状态为 h=200 的单个整数。

LSTM 添加了一个额外的单元层用于纵向内存,其大小与隐藏层相同,因此 LSTM 的整体状态为 2x200 = 400。

this paper的介绍部分可能会有好处。

<小时/>

不得不说 TensorFlow 的文档对于初学者来说有点过于简洁了。

关于tensorflow - TensorFlow 中 MultiRNNCell 的 state_size 是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36732877/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com