我构建了一个简单的神经网络,
model = Sequential()model.add(Dense(20, input_dim=5, activation='sigmoid'))model.add(Dense(1, activation='sigmoid'))
我可以通过以下方式获取其权重:
summary = model.summary()W_Input_Hidden = model.layers[0].get_weights()[0]W_Output_Hidden = model.layers[1].get_weights()[0]print(summary)print('INPUT-HIDDEN LAYER WEIGHTS:')print(W_Input_Hidden)print('HIDDEN-OUTPUT LAYER WEIGHTS:')print(W_Output_Hidden)
但是,通过这种方式,我只能得到权重矩阵(5×20 和 1×20),而没有得到偏置值。我该如何获取偏置值呢?
回答:
非常简单,对于Dense层来说,get_weights()返回的数组中的第二个元素就是偏置值:
B_Input_Hidden = model.layers[0].get_weights()[1]B_Output_Hidden = model.layers[1].get_weights()[1]