tensorflow BasicLSTMCell里num_units是什么?
0 597
1

在MNIST LSTM示例中,我不理解“隐藏层”的含义。当表示一段时间后展开的RNN时,它是虚构层吗? 为什么在大多数情况下num_units = 128?

收藏
2021-02-06 15:18 更新 anna •  5050
共 1 个回答
高赞 时间
0

隐藏单元的数量直接表示神经网络的学习能力。值128可能是任意或凭经验选择的。你可以通过实验改变该值,并重新运行该程序,以了解它如何影响训练精度(你可以用较少隐藏单元来获得优于90%的测试准确性)。

使用更多的单元将使其更有可能完美地记住完整的训练集(尽管这将花费更长的时间,并且存在过度拟合的风险)。

在著名的Colah的博客文章(“每一行都包含一个完整的向量”)中,要理解的关键是X是一个数据数组(现在通常称为张量)——它不是标量值。 例如,在显示tanh函数时,它意味着该函数在整个数组中广播(隐式for循环),而不是简单地每一次执行一次。

因此,隐藏单元表示网络中的有形存储,这主要表现在权值数组的大小上。因为LSTM实际上有一些独立于模型参数的内部存储,所以它必须知道有多少单元——这最终需要与权重的大小一致。在最简单的情况下,RNN没有内部存储——所以它甚至不需要提前知道它被应用于多少“隐藏单元”。

Via:https://stackoverflow.com/a/39440218/14964791

收藏
2021-02-06 16:55 更新 karry •  4552