【问题标题】:Set starting weights individually for neural network为神经网络单独设置起始权重
【发布时间】:2021-07-08 17:59:30
【问题描述】:

我有一个简单的前馈神经网络,由 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 个输入参数中哪一个对单个输出的影响最大,我可以将它们的起始权重设置为相对于其他输入参数更高的值。如果这可能会显着减少训练时间(如果我没记错的话)。

【问题讨论】:

  • 需要更多关注 这个问题目前包含多个问题。它应该只关注一个问题。 我将此问题标记为已关闭。一个问题不应像您那样包含多个问题(问题 a 和问题 b)。如果您在stackoverflow stackoverflow.com/questions/ask 中提出多个问题会更好。如果您阅读有关flagging meta.stackoverflow.com/a/396761/13146129 的内容,您会很清楚
  • @Istiak:现在只问了一个问题。

标签: python tensorflow keras neural-network


【解决方案1】:
# 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

【讨论】:

    猜你喜欢
    • 2019-06-16
    • 2011-12-09
    • 2020-02-08
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-09
    • 2021-06-25
    相关资源
    最近更新 更多