Keras - 检索图层连接的图层

时间:2018-06-12 10:24:35

标签: python neural-network keras deep-learning

我有一个基于Keras的模型,可以是顺序的或功能性的。可以通过model变量访问模型。我想实现从输出到输入遍历模型的方法,并使用模型的权重执行某些操作。

有没有办法获得特定图层的前一层?我想做这样的事情:

x = <some number>
layer_x = model.layers[x] 
predecessor_layers = ???

2 个答案:

答案 0 :(得分:1)

@Mitiku建议的解决方案仅返回输入张量,但我们需要一个前趋层。可以通过以下方式找到前置层:

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]

注意:此解决方案不好,因为它可以访问受保护的属性,但它可以正常工作。

答案 1 :(得分:0)

keras中的图层有两个属性,指向它的输入图层和输出图层。在您的情况下,前导层是输入层,您可以通过调用输入属性来访问它。

x = <some number>
layer_x = model.layers[x] 
predecessor_layers = layer_x.input