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

ValueError: tensorflow op Switch is not supported #60

@iamshri8

Description

@iamshri8

Hello,

I tried converting keras model to onnx using the following script

keras_model = load_model(filepath="yolov2-tiny-voc.h5")
model = load_model(filepath="new_model.h5", custom_objects={'prev_model': keras_model})
onnx_model = keras2onnx.convert_keras(model=model, channel_first_inputs= 'input_1')
onnx.save_model(onnx_model, "onnx_tiny_voc.onnx")

yolov2-tiny-voc.h5 ----> https://drive.google.com/file/d/1yQSOAXJ65RMf7OmYZJBL-035JOqZ-ib3/view?usp=sharing

new_model.h5 ----> https://drive.google.com/file/d/1h0ISKluzqV3HUaJyUieQxS3WviNK5oGh/view?usp=sharing

The reason I had to load two models is because I wrote a Lambda Layer to add a Transpose layer (TPose) at the end. So i had to give old model's output as input for the K.permute_dimensions(x, pattern).

Because of this, I get the following error:
File "new_keras_onnx.py", line 11, in
onnx_model = keras2onnx.convert_keras(model=model, channel_first_inputs= 'input_1')
File "C:\Users\Shriram\Master_Project\env\lib\site-packages\keras2onnx\main.py", line 93, in convert_keras
parse_graph(topology, sess.graph, target_opset, output_names)
File "C:\Users\Shriram\Master_Project\env\lib\site-packages\keras2onnx\parser.py", line 440, in parse_graph
return _parse_graph_scope(graph, keras_op_table, topo, top_level, output_names)
File "C:\Users\Shriram\Master_Project\env\lib\site-packages\keras2onnx\parser.py", line 426, in _parse_graph_scope
_infer_graph_shape(topology, top_scope, varset)
File "C:\Users\Shriram\Master_Project\env\lib\site-packages\keras2onnx\parser.py", line 230, in _infer_graph_shape
_finalize_tf2onnx_op(topology, oop, varset)
File "C:\Users\Shriram\Master_Project\env\lib\site-packages\keras2onnx\parser.py", line 200, in _finalize_tf2onnx_op
g = tf2onnx_wrap(topo, subgraph, outputs, varset.target_opset)
File "C:\Users\Shriram\Master_Project\env\lib\site-packages\keras2onnx\wrapper.py", line 31, in tf2onnx_wrap
raise e
File "C:\Users\Shriram\Master_Project\env\lib\site-packages\keras2onnx\wrapper.py", line 25, in tf2onnx_wrap
output_names=outputs)
File "C:\Users\Shriram\Master_Project\env\lib\site-packages\tf2onnx\tfonnx.py", line 2441, in process_tf_graph
mapped_op, unmapped_op = tensorflow_onnx_mapping(g, continue_on_error, custom_op_handlers)
File "C:\Users\Shriram\Master_Project\env\lib\site-packages\tf2onnx\tfonnx.py", line 2290, in tensorflow_onnx_mapping
raise ValueError("tensorflow op " + op + " is not supported")
ValueError: tensorflow op Switch is not supported

Could someone pls help on this?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions