Kra*_*urt 7 neural-network lstm keras
在https://keras.io/layers/recurrent/ 上,我看到 LSTM 层有 akernel和 a recurrent_kernel。它们的含义是什么?根据我的理解,我们需要 LSTM 单元的 4 个门的权重。但是,在 keras 实现中,kernel形状为 (input_dim, 4*units),recurrent_kernel形状为 (units, 4*units)。那么,他们都以某种方式实现了门吗?
Ste*_*nev 14
如果我错了,请纠正我,但如果你看看 LSTM 方程:
您有 4 个用于转换输入的W矩阵和 4 个用于转换隐藏状态的U矩阵。
Keras保存这些套4点矩阵入kernel和recurrent_kernel重量阵列。从使用它们的代码:
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:]
Run Code Online (Sandbox Code Playgroud)
显然,这 4 个矩阵存储在沿第二维连接的权重数组中,这解释了权重数组的形状。
| 归档时间: |
|
| 查看次数: |
1549 次 |
| 最近记录: |