【问题标题】:Modify layer weights in Keras在 Keras 中修改图层权重
【发布时间】:2017-08-07 04:49:14
【问题描述】:

我正在尝试修改 Keras 中图层的输出。我有一个将时间序列转换为潜在空间的编码器,之后,对于每个压缩的时间序列,我想在时间序列中添加一些数字。

例如我有:

input_d = Input((100,))
h1_d = Reshape((100, 1))(input_d)
h2_d = LSTM(150, return_sequences=True)(h1_d)
h3_d = TimeDistributed(Dense(64, activation='linear'))(h2_d)
h4_d = LSTM(150)(h3_d)
output_d = Dense(30, activation='linear')(h4_d)

我想做这样的事情:

new_weights = []
for i in outputs_d.weights:
    new_weights.append(np.vstack(([1,2,3], i)))

但问题是我不知道我可以在什么时候执行此操作,因为如果在ouput_d 之后编写 Lambda 层,我将无法访问权重。

【问题讨论】:

    标签: python deep-learning keras


    【解决方案1】:

    我发现执行此类操作的唯一方法是将所需功能实现为回调,您可以在其中访问模型,从而通过self.model.trainable_weightsself.model.get_weights() 访问权重。

    【讨论】:

      猜你喜欢
      • 2019-03-19
      • 2019-01-01
      • 2017-03-22
      • 2017-09-28
      • 2021-02-13
      • 1970-01-01
      • 1970-01-01
      • 2019-12-28
      • 2018-04-30
      相关资源
      最近更新 更多