【问题标题】:How to set only the modified weights for each convolutional layers?如何只为每个卷积层设置修改后的权重?
【发布时间】:2020-05-20 12:44:25
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您好,欢迎来到 AI SE!这个问题在这里是题外话,因为这只是一个编程问题。有关详细信息,请参阅ai.stackexchange.com/help/on-topic。我会将这个问题迁移到 Stack Overflow。
  • @nbro 感谢您的更正和回答问题。

标签: deep-learning python keras


【解决方案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])

【讨论】:

  • 我也是这样做的。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-13
  • 1970-01-01
  • 2017-06-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-26
  • 1970-01-01
相关资源
最近更新 更多