keras - keras lstm层中的多个内核是什么意思?

标签 keras neural-network lstm

https://keras.io/layers/recurrent/我看到 LSTM 层有一个 kernel和一个 recurrent_kernel .它们的含义是什么?根据我的理解,我们需要 LSTM 单元的 4 个门的权重。但是,在 keras 实现中,kernel具有 (input_dim, 4*units) 和 recurrent_kernel 的形状具有(单位,4*单位)的形状。那么,他们都以某种方式实现了门吗?

最佳答案

如果我错了,请纠正我,但如果你看看 LSTM 方程:

enter image description here

你有 4 W 转换输入和 4 的矩阵U 变换隐藏状态的矩阵。

Keras 将这些 4 个矩阵的集合保存到 kernel 中和 recurrent_kernel权重数组。来自 the code that uses them :

self.kernel_i = self.kernel[:, :self.units]
self.kernel_f = self.kernel[:, self.units: self.units * 2]
self.kernel_c = self.kernel[:, self.units * 2: self.units * 3]
self.kernel_o = self.kernel[:, self.units * 3:]

self.recurrent_kernel_i = self.recurrent_kernel[:, :self.units]
self.recurrent_kernel_f = self.recurrent_kernel[:, self.units: self.units * 2]
self.recurrent_kernel_c = self.recurrent_kernel[:, self.units * 2: self.units * 3]
self.recurrent_kernel_o = self.recurrent_kernel[:, self.units * 3:]

显然,这 4 个矩阵存储在沿第二维连接的权重数组中,这解释了权重数组的形状。

关于keras - keras lstm层中的多个内核是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55723284/

相关文章:

machine-learning - 如何使用keras理解fit_generator中的steps_per_epoch?

python - 为什么当我设置为 300 时,keras 只执行 10 个 epoch?

c++ - ai junkie 神经网络教程 - 不明白

matlab - 为什么神经网络的准确性不好?

machine-learning - 这是使用状态 LSTM 神经网络预测时间序列的正确方法吗?

swift - 如何在 swift 中为 tensorflow 编写 RNN/LSTM 自定义层?

python - 将千层面转换为 Keras 代码(CNN -> LSTM)

machine-learning - 如何在keras深度学习中进行多标签分类?

python - 值错误 : None values not supported Keras Custom Loss Function in Tensorflow

python - 获取 OSError : [Errno 16] Device or resource busy: ' when using tf. keras.models.Sequential.fit_generator