获取前一层的权重

时间:2017-01-06 16:05:50

标签: python deep-learning keras keras-layer

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

enter image description here

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

由于

KK

1 个答案:

答案 0 :(得分:0)

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

完整版

根据this thread和fchollet本人的解释,这样做的规范方法是将你的权重加载到之前的Keras模型中(你不需要编译它,所以它'即时)并使用该模型作为可查询的数据结构来访问权重。

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

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

另请参阅:another discussion关于此主题的fchollet。