Keras:解释get_weights()的输出
在Keras中运行神经网络时,我似乎找不到多少关于如何解释get_weights()输出的文档。据我所知,输出是由网络结构决定的。因此,我将我的网络结构的简化版本粘贴到下面:Keras:解释get_weights()的输出,keras,Keras,在Keras中运行神经网络时,我似乎找不到多少关于如何解释get_weights()输出的文档。据我所知,输出是由网络结构决定的。因此,我将我的网络结构的简化版本粘贴到下面: model.add(Dense(5, input_dim=2, activation = linear, use_bias=True, kernel_initializer=Orthogonal)) model.add(Dense(1, use_bias=True)) model.compile(loss='mae', o
model.add(Dense(5, input_dim=2, activation = linear, use_bias=True, kernel_initializer=Orthogonal))
model.add(Dense(1, use_bias=True))
model.compile(loss='mae', optimizer='adam')
训练后get_weights()的输出为:
[array([[ 0.79376745, 0.79879117, 1.22406125, 1.07782006, 1.24107373],
[ 0.88034034, 0.88281095, 1.13124955, 0.98677355, 1.14481246]], dtype=float32),
array([-0.09109745, -0.09036621, 0.0977743 , -0.07977977, 0.10829113], dtype=float32),
array([[-0.72631335],
[-0.38004425],
[ 0.62861812],
[ 0.10909595],
[ 0.30652359]], dtype=float32),
array([ 0.09278722], dtype=float32)]
总共有四个阵列。每个代表什么?谢谢 - 第一层的权重(2个输入x 5个单位)
- 第一层的偏差(5个单位)
- 第二层的权重(5个输入x 1个单位)
- 第二层的偏差(1个单位)
for lay in model.layers:
print(lay.name)
print(lay.get_weights())
这实际上让我意识到我误解了神经网络中权重的形状。我以为每个神经元有一个权重,但实际上每个神经元的权重数量取决于它与前一层的连接数量。另一方面,每个神经元只有一个偏差。我需要再次研究神经网络的数学。谢谢这在一开始对我帮助很大:谢谢。只是确认一下,对于第一个数组(即2x5),第一个值(0.7937)是连接到第一个神经元的第一个输入节点的权重,而最后一个值(1.144)是连接到第五个神经元的第二个输入节点的权重。是的:)就是它。所以每一层存储到它的“过渡”的权重,对吗?从输入值到第一个隐藏层“过渡”,权重存储在第一个隐藏层中。依此类推,直到输出层存储从最后一个隐藏层到输出层的“过渡”权重。我的想法正确吗?