Skip to content
This repository was archived by the owner on Oct 13, 2021. It is now read-only.

Fix _create_keras_nodelist for test_rnn_state_passing #427

Merged
merged 25 commits into from
Apr 6, 2020
Merged
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
d674930
Add vgg16 and nasnet to v2 application
jiafatom Feb 26, 2020
c731d6f
Add vgg16 and nasnet to v2 application
jiafatom Feb 26, 2020
e389ae3
Merge branch 'test_tfl' of https://github.com/jiafatom/keras-onnx int…
jiafatom Feb 26, 2020
d200756
Merge branch 'master' into test_tfl
jiafatom Feb 26, 2020
4dd8869
Add DepthwiseConv2d to subclassed model and efficient-net test cases …
wenbingl Feb 25, 2020
7f9add8
Merge branch 'test_tfl' of https://github.com/jiafatom/keras-onnx
jiafatom Feb 26, 2020
1bb0e71
Merge branch 'master' of https://github.com/jiafatom/keras-onnx
jiafatom Feb 26, 2020
0cbfd4b
Merge branch 'master' of https://github.com/onnx/keras-onnx
jiafatom Feb 26, 2020
59cf5dd
Merge branch 'master' of https://github.com/onnx/keras-onnx
jiafatom Feb 28, 2020
99c9428
Merge branch 'master' of https://github.com/onnx/keras-onnx
jiafatom Feb 28, 2020
86559d9
Merge branch 'master' of https://github.com/jiafatom/keras-onnx
jiafatom Mar 6, 2020
614e418
Merge branch 'master' of https://github.com/onnx/keras-onnx
jiafatom Mar 9, 2020
d226a48
Merge branch 'master' of https://github.com/onnx/keras-onnx
jiafatom Mar 11, 2020
aea5db7
Merge branch 'master' of https://github.com/onnx/keras-onnx
jiafatom Mar 18, 2020
4fb0eb1
Merge branch 'master' of https://github.com/onnx/keras-onnx
jiafatom Mar 19, 2020
9a1da8d
Merge branch 'master' of https://github.com/onnx/keras-onnx
jiafatom Mar 25, 2020
af09194
Merge branch 'master' of https://github.com/onnx/keras-onnx
jiafatom Mar 28, 2020
439766b
Merge branch 'master' of https://github.com/onnx/keras-onnx
jiafatom Mar 30, 2020
dde384a
Merge branch 'master' of https://github.com/onnx/keras-onnx
jiafatom Apr 1, 2020
6084779
Merge branch 'master' of https://github.com/onnx/keras-onnx
jiafatom Apr 1, 2020
6fe74e4
Merge branch 'master' of https://github.com/onnx/keras-onnx
jiafatom Apr 3, 2020
64b12c9
Merge branch 'master' of https://github.com/onnx/keras-onnx
jiafatom Apr 6, 2020
90651ad
Fix _create_keras_nodelist for test_rnn_state_passing
jiafatom Apr 6, 2020
c185d9c
Fix _create_keras_nodelist for test_rnn_state_passing
jiafatom Apr 6, 2020
c3a1d05
Merge branch 'parser_share' of https://github.com/jiafatom/keras-onnx…
jiafatom Apr 6, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 3 additions & 16 deletions keras2onnx/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,13 @@
list_input_tensors, list_input_mask, list_output_mask,
list_output_tensors, list_input_shapes, list_output_shapes, on_parsing_keras_layer)

ALLOWED_SHARED_KERAS_TYPES = {
keras.layers.embeddings.Embedding,
}

def _find_node(nodes, name):
try:
opname = tsname_to_node(name)
return next(n_ for n_ in nodes if n_.name == opname)
except StopIteration:
return None


def _locate_inputs_by_node(node_list, varset):
inputs = {}
for n_ in node_list:
Expand Down Expand Up @@ -402,9 +397,9 @@ def _create_keras_nodelist(layer, inference_nodeset, out_node=None):
if out_node is not None and out_node.name not in \
[tsname_to_node(ts_.name) for ts_ in list_output_tensors(node_)]:
continue # this layer could be reused several times in the whole graph.
if any(ts_.op not in inference_nodeset for ts_ in list_output_tensors(node_)):
continue
newly.extend([ts_.op for ts_ in list_output_tensors(node_)])
for ts_ in list_output_tensors(node_):
if ts_.op in inference_nodeset:
newly.extend([ts_.op for ts_ in list_output_tensors(node_)])
ts_end |= set(list_input_tensors(node_))

for ts_ in list_input_mask(layer):
Expand Down Expand Up @@ -573,7 +568,6 @@ def _parse_graph_core(graph, keras_node_dict, topology, top_scope, output_names)
for n_ in model_outputs:
q_overall.put_nowait(n_)

visited_layers = set()
visited = set() # since the output could be shared among the successor nodes.
inference_nodeset = _build_inference_nodeset(graph, model_outputs)
keras_nodeset = _build_keras_nodeset(inference_nodeset, keras_node_dict)
Expand All @@ -586,13 +580,6 @@ def _parse_graph_core(graph, keras_node_dict, topology, top_scope, output_names)
layer_key_, model_ = _parse_nodes(graph, inference_nodeset, input_nodes, keras_node_dict, keras_nodeset,
node, nodes, varset, visited, q_overall)

# Only parse Keras layers once (allow certain shared classes)
if layer_key_ in visited_layers:
if not type(layer_key_) in ALLOWED_SHARED_KERAS_TYPES:
continue
else:
visited_layers.add(layer_key_)

if not nodes: # already processed by the _parse_nodes
continue

Expand Down