@@ -94,12 +94,12 @@ def allow_pruning(self, layer):
94
94
return isinstance (layer , layers .Conv2D ) and layer .kernel_size == (1 , 1 )
95
95
96
96
def _get_producers (self , layer ):
97
- producers = []
97
+ producers = set ()
98
98
for node in layer ._inbound_nodes :
99
99
if isinstance (node .inbound_layers , list ):
100
- producers .extend (node .inbound_layers )
100
+ producers .update (node .inbound_layers )
101
101
else :
102
- producers .append (node .inbound_layers )
102
+ producers .add (node .inbound_layers )
103
103
return producers
104
104
105
105
def _get_consumers (self , layer ):
@@ -133,7 +133,7 @@ def _lookup_layers(self, source_layers, stop_fn, next_fn):
133
133
def _start_layer_stop_fn (self , layer ):
134
134
"""Determines whether the layer starts a subgraph of sparse inference."""
135
135
if isinstance (layer , layers .Conv2D ):
136
- producers = self ._get_producers (layer )
136
+ producers = list ( self ._get_producers (layer ) )
137
137
return (hasattr (layer , 'kernel' ) and
138
138
layer .kernel .shape [:3 ] == (3 , 3 , 3 ) and
139
139
layer .strides == (2 , 2 ) and layer .padding .lower () == 'valid' and
@@ -172,7 +172,7 @@ def _check_layer_support(self, layer):
172
172
# 5x5 convolution with `VALID` padding (no dilation, stride-1 or stride-2,
173
173
# preceding `ZeroPadding2D` layer with padding 2 on each side.
174
174
padding = layer .padding .lower ()
175
- producers = self ._get_producers (layer )
175
+ producers = list ( self ._get_producers (layer ) )
176
176
zero_padding = (
177
177
producers [0 ] if len (producers ) == 1 and
178
178
isinstance (producers [0 ], layers .ZeroPadding2D ) else None )
0 commit comments