我正在尝试修改 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 层,我将无法访问权重。
最佳答案
我发现做这样的事情的唯一方法是将所需的功能实现为回调,您可以在回调中访问模型,从而通过 self.model.trainable_weights
或self.model.get_weights()
。
关于python - 在 Keras 中修改图层权重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45539595/