Keras 模型中存储的单独 'bias' 权重是什么意思?

What is meaning of separate 'bias' weights stored in Keras model?

Post-edit: 原来我一直在玩下面的三个函数时感到困惑。

model.weights
model.get_weights()
model.layer(i).get_weights()
  1. model.layer(i).get_weights() returns two 分开的数组(没有任何标签)如果 [=38 则为 kernelbias =]模型中存在偏差。
  2. model.get_weights()直接returns所有没有任何标签的权重
  3. model.weights returns 权重和一些信息,例如它所属层的 name 及其 shape。我用这个来做题中的实验。

让我困惑的只是上面的1和3。

注意:我决定不删除这个问题,因为它收到了答案,并且经过 post-edit 可能它仍然对某人有帮助。


问题是...

保存 Keras 模型后,当我检查权重时,我注意到 2 个单独的 biases.

以下是按名称列出的部分权重。

conv2d/kernel:0
conv2d/bias:0

kernel 存储一个 bias 数组作为他们的第二个 numpy 数组元素,我知道它是原始的 层的偏差。然后,分别还有bias

哪一个有什么作用?它们有什么区别?

卷积层 (conv2d) 有一个内核和一个偏置项,而密集层 (dense) 也有一个内核和一个偏置项。此处的偏置项为每一层提供了新的自由度,使神经网络的预测能力更强。