【问题标题】:Fetch weights of the previous layer获取上一层的权重
【发布时间】:2017-05-21 10:34:59
【问题描述】:

是否可以获取上一层的权重,修改它们并再次设置到下一层。我想在网络中引入一个自定义层,它将修改权重(根据所需的逻辑),然后将修改后的权重值设置为下一层。如下图所示:

我不确定这是否可能。我知道我们可以转储快照,然后使用它来设置新的权重。我还可以使用快照转换权重。但是,我不知道如何在网络本身内执行此操作(无需拍摄或使用任何快照)。

谢谢

KK

【问题讨论】:

    标签: python deep-learning keras keras-layer


    【解决方案1】:

    tl;dr:加载一个模型(无需编译)并使用您想要初始化模型的权重。为要更改的图层创建新的权重。

    完整版

    根据this thread 和 fchollet 自己的解释,执行此操作的规范方法是将权重加载到以前的 Keras 模型中(您不需要编译它,所以它是即时的)并将该模型用作用于访问权重的可查询数据结构。

    对于顺序模型,您可以这样做:

    weights = model.layers[5].get_weights()
    model.layers[5].set_weights(weights)
    

    另请参阅:another discussion 使用 fchollet 讨论此主题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-28
      • 2019-02-27
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      • 2017-09-04
      • 2022-07-04
      • 2018-10-28
      相关资源
      最近更新 更多