为神经网络单独设置起始权重



我有一个简单的前馈神经网络,由8个输入神经元组成,然后是2个隐藏层,每个层有6个隐藏神经元,1个输出层由1个输出神经元组成。

Keras代码是:

model = Sequential()
model.add(Dense(6, input_dim = 8, activation='tanh')
model.add(Dense(6, activation='tanh'))
model.add(Dense(1, activation='tanh'))

问题:

由于我知道8个输入参数中哪一个对单个输出的影响最大,因此我可以将它们的开始权重设置为相对于其他输入参数更高的值。如果这是可能的,那可以显著减少训练时间(如果我没有错的话(。

# reading the initial weights and bias of the input layer
layer_1 = (model.layers)[0]
# reading the initial weights of the input layer
w_1 = layer_1.get_weights()[0]
# setting weights for nth parameter of the input layer to a modified value val
w_1[n, :] = val
# setting the modified weights and unmodified bias of the input layer 
layer_1.set_weights([w_1, layer_1.get_weights()[1]])
# writing layer_1 to model
(model.layers)[0] = layer_1

相关内容

  • 没有找到相关文章

最新更新