如何只为每个卷积层设置修改后的权重?

时间:2020-05-20 12:44:25

标签: deep-learning python keras

我目前正在做一些关于修改权重而不是模型每个卷积层偏差的实验。

对于模型的每个层,我使用layer.get_weights()[0]来获取权重。在修改了该特定图层的权重值之后,我想将权重设置回相应的图层。

我想为此目的使用set_weights()方法,但是,它需要输入权重和偏差,因此我无法实现。将权重值设置回模型各层并保持偏差不变的最简单方法是什么?

我只是一个初学者,如果这个问题不合适,请给我一些建议和想法。

1 个答案:

答案 0 :(得分:1)

layer.get_weights()返回numpy数组的列表。元素0是权重,元素1是偏差。实际上,我现在不记得也无法检查它,此列表可以包含其他内容,但是我认为这对您的情况并不重要。

因此您可以执行以下操作:

params = layer.get_weights()
weights = params[0]
biases = params[1]
my_weights = <your modifications>
layer.set_weights([my_weights, biases])