首页 文章

如何在Keras序列模型中提取偏差权重? [重复]

提问于
浏览
8

这个问题在这里已有答案:

我正在使用Keras运行一个简单的前馈网络 . 只有一个隐藏层我想对每个输入与每个输出的相关性做一些推断,我想提取权重 .

这是模型:

def build_model(input_dim, output_dim):
    n_output_layer_1 = 150
    n_output = output_dim
    model = Sequential()
    model.add(Dense(n_output_layer_1, input_dim=input_dim, activation='relu'))
    model.add(Dropout(0.25))
    model.add(Dense(n_output))

为了提取我写的重量:

for layer in model.layers:
    weights = layer.get_weights() 


weights = np.array(weights[0])     #this is hidden to output
first = model.layers[0].get_weights() #input to hidden
first = np.array(first[0])

不幸的是,我没有得到矩阵中的偏差列,我知道Keras会自动插入它 .

Do you know how to retrieve the biases weights?

预先感谢您的帮助 !

1 回答

  • 16

    密集图层的get_weights()返回两个元素的列表,第一个元素包含权重,第二个元素包含偏差 . 所以你可以简单地做:

    weights = model.layers[0].get_weights()[0]
    biases = model.layers[0].get_weights()[1]
    

    请注意,权重和偏差已经是numpy数组 .

相关问题