我有一个使用Keras构建的模型,可以是顺序的或者是函数式的。这个模型可以通过model
变量进行访问。我想要实现一种方法,它能够从输出层向输入层遍历整个模型,并对模型的权重进行操作。
有没有办法获取某个特定层的前驱层?我想要像这样做:
x = <some number>
layer_x = model.layers[x]
predecessor_layers = ???
我有一个使用Keras构建的模型,可以是顺序的或者是函数式的。这个模型可以通过model
变量进行访问。我想要实现一种方法,它能够从输出层向输入层遍历整个模型,并对模型的权重进行操作。
有没有办法获取某个特定层的前驱层?我想要像这样做:
x = <some number>
layer_x = model.layers[x]
predecessor_layers = ???
x = <some number>
layer_x = model.layers[x]
int_node = layer_x._inbound_nodes[0]
predecessor_layers = int_node.inbound_layers[0]
layer_x
只有一个前置层。为了获取该层,我们首先访问连接这两个层的节点:int_node
,然后获取其输入上的层:int_node.inbound_layers[0]
。
_inbound_nodes
已经被更改了(除非你使用model.get_config()
)。例如,你可以调用model.get_config()['layers'][0]['inbound_nodes']
或model.layers[0]._inbound_nodes
来获取输入节点。我会删除之前的评论。 - rob_inbound_nodes
中有一个拼写错误(您忘记了_
)。由于字符数少于6个,我无法进行编辑。 - Zaccharie Ramzi