我正在使用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))
Run Code Online (Sandbox Code Playgroud)
为了提取我写的重量:
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])
Run Code Online (Sandbox Code Playgroud)
不幸的是,我没有得到矩阵中的偏差列,我知道Keras会自动插入它.
你知道如何检索偏差权重吗?
预先感谢您的帮助 !
我建立了一个简单的神经网络,
model = Sequential()
model.add(Dense(20, input_dim=5, activation='sigmoid'))
model.add(Dense(1, activation='sigmoid'))
Run Code Online (Sandbox Code Playgroud)
我会得到它的权重:
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)
Run Code Online (Sandbox Code Playgroud)
但是,通过这种方式,我只得到没有偏差的权重矩阵(5x20,1x20).如何获得偏差值?