首页 > 解决方案 > 如何只为每个卷积层设置修改后的权重?

问题描述

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

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

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

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

标签: deep-learningpythonkeras

解决方案


layer.get_weights() returns list of numpy arrays. Element 0 is weights, element 1 - biases. Actually, I don't remember and can't check it right now, can this list contain something else, but it is not important in your situation, I guess.

So you can do something like:

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

推荐阅读