Python 获取上一层的权重

Python 获取上一层的权重,python,deep-learning,keras,keras-layer,Python,Deep Learning,Keras,Keras Layer,是否可以获取上一层的权重,修改它们并再次设置为下一层。我想在网络中引入一个自定义层,它将修改权重(按照所需的逻辑),然后将修改后的权重值设置到下一层。与下图所示类似: 我不确定这是否可能。我知道我们可以转储快照,然后使用它设置新的权重。我还可以使用快照转换权重。但是,我不知道如何在网络本身内做到这一点(不拍摄或使用任何快照) 谢谢 KKtl;dr:加载一个模型(无需编译)并使用要初始化模型的权重。为要更改的图层创建新权重 完整版本: 正如fchollet自己所解释的那样,实现这一点的标准方法是

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

我不确定这是否可能。我知道我们可以转储快照,然后使用它设置新的权重。我还可以使用快照转换权重。但是,我不知道如何在网络本身内做到这一点(不拍摄或使用任何快照)

谢谢


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

完整版本

正如fchollet自己所解释的那样,实现这一点的标准方法是将权重加载到以前的Keras模型中(您不需要编译它,因此它是即时的),并将该模型用作可查询的数据结构来访问权重

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

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

另请参见:关于fchollet的本主题。

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

完整版本

正如fchollet自己所解释的那样,实现这一点的标准方法是将权重加载到以前的Keras模型中(您不需要编译它,因此它是即时的),并将该模型用作可查询的数据结构来访问权重

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

weights = model.layers[5].get_weights()
model.layers[5].set_weights(weights)
另请参见:关于fchollet的本主题