1

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

在此处输入图像描述

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

谢谢

KK

4

1 回答 1

0

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

完整版

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

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

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

另请参阅:与 fchollet 有关此主题的另一个讨论。

于 2017-01-11T15:12:33.247 回答