tensorflow-onnx icon indicating copy to clipboard operation
tensorflow-onnx copied to clipboard

Failed to convert node 'StatefulPartitionedCall/TransNet/ColorHistograms/UnsortedSegmentSum'

Open sniper0110 opened this issue 2 years ago • 2 comments

Describe the bug

When I try to convert a tensorflow model to onnx, I get the following error:

2023-01-26 20:29:48,972 - WARNING - '--tag' not specified for saved_model. Using --tag serve
2023-01-26 20:29:54,080 - INFO - Signatures found in model: [serving_default].
2023-01-26 20:29:54,080 - WARNING - '--signature_def' not specified, using first signature: serving_default
2023-01-26 20:29:54,081 - INFO - Output names: ['output_1', 'output_2']
2023-01-26 20:29:57,747 - INFO - Using tensorflow=2.6.0, onnx=1.13.0, tf2onnx=1.13.0/2c1db5
2023-01-26 20:29:57,747 - INFO - Using opset <onnx, 17>
2023-01-26 20:29:59,695 - INFO - Computed 37 values for constant folding
2023-01-26 20:30:00,836 - INFO - folding node using tf type=Mul, name=StatefulPartitionedCall/TransNet/ColorHistograms/mul_1
2023-01-26 20:30:00,837 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_1/DDCNN_1/Conv3D_2/conv_temporal/strided_slice_1 
2023-01-26 20:30:00,837 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_1/DDCNN_1/Conv3D_2/conv_temporal/strided_slice_2 
2023-01-26 20:30:00,838 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_1/DDCNN_1/Conv3D_4/conv_temporal/strided_slice_1 
2023-01-26 20:30:00,838 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_1/DDCNN_1/Conv3D_4/conv_temporal/strided_slice_2 
2023-01-26 20:30:00,838 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_1/DDCNN_1/Conv3D_8/conv_temporal/strided_slice_1 
2023-01-26 20:30:00,839 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_1/DDCNN_1/Conv3D_8/conv_temporal/strided_slice_2 
2023-01-26 20:30:00,840 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_1/DDCNN_2/Conv3D_2/conv_temporal/strided_slice_1 
2023-01-26 20:30:00,840 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_1/DDCNN_2/Conv3D_2/conv_temporal/strided_slice_2 
2023-01-26 20:30:00,841 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_1/DDCNN_2/Conv3D_4/conv_temporal/strided_slice_1 
2023-01-26 20:30:00,841 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_1/DDCNN_2/Conv3D_4/conv_temporal/strided_slice_2 
2023-01-26 20:30:00,842 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_1/DDCNN_2/Conv3D_8/conv_temporal/strided_slice_1 
2023-01-26 20:30:00,842 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_1/DDCNN_2/Conv3D_8/conv_temporal/strided_slice_2 
2023-01-26 20:30:00,843 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_2/DDCNN_1/Conv3D_2/conv_temporal/strided_slice_1 
2023-01-26 20:30:00,843 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_2/DDCNN_1/Conv3D_2/conv_temporal/strided_slice_2 
2023-01-26 20:30:00,844 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_2/DDCNN_1/Conv3D_4/conv_temporal/strided_slice_1 
2023-01-26 20:30:00,844 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_2/DDCNN_1/Conv3D_4/conv_temporal/strided_slice_2 
2023-01-26 20:30:00,845 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_2/DDCNN_1/Conv3D_8/conv_temporal/strided_slice_1 
2023-01-26 20:30:00,845 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_2/DDCNN_1/Conv3D_8/conv_temporal/strided_slice_2 
2023-01-26 20:30:00,846 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_2/DDCNN_2/Conv3D_2/conv_temporal/strided_slice_1 
2023-01-26 20:30:00,846 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_2/DDCNN_2/Conv3D_2/conv_temporal/strided_slice_2 
2023-01-26 20:30:00,847 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_2/DDCNN_2/Conv3D_4/conv_temporal/strided_slice_1 
2023-01-26 20:30:00,847 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_2/DDCNN_2/Conv3D_4/conv_temporal/strided_slice_2 
2023-01-26 20:30:00,848 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_2/DDCNN_2/Conv3D_8/conv_temporal/strided_slice_1 
2023-01-26 20:30:00,848 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_2/DDCNN_2/Conv3D_8/conv_temporal/strided_slice_2 
2023-01-26 20:30:00,849 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_3/DDCNN_1/Conv3D_2/conv_temporal/strided_slice_1 
2023-01-26 20:30:00,849 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_3/DDCNN_1/Conv3D_2/conv_temporal/strided_slice_2 
2023-01-26 20:30:00,849 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_3/DDCNN_1/Conv3D_4/conv_temporal/strided_slice_1 
2023-01-26 20:30:00,850 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_3/DDCNN_1/Conv3D_4/conv_temporal/strided_slice_2 
2023-01-26 20:30:00,850 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_3/DDCNN_1/Conv3D_8/conv_temporal/strided_slice_1 
2023-01-26 20:30:00,850 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_3/DDCNN_1/Conv3D_8/conv_temporal/strided_slice_2 
2023-01-26 20:30:00,851 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_3/DDCNN_2/Conv3D_2/conv_temporal/strided_slice_1 
2023-01-26 20:30:00,851 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_3/DDCNN_2/Conv3D_2/conv_temporal/strided_slice_2 
2023-01-26 20:30:00,852 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_3/DDCNN_2/Conv3D_4/conv_temporal/strided_slice_1 
2023-01-26 20:30:00,852 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_3/DDCNN_2/Conv3D_4/conv_temporal/strided_slice_2 
2023-01-26 20:30:00,853 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_3/DDCNN_2/Conv3D_8/conv_temporal/strided_slice_1 
2023-01-26 20:30:00,853 - INFO - folding node using tf type=StridedSlice, name=StatefulPartitionedCall/TransNet/SDDCNN_3/DDCNN_2/Conv3D_8/conv_temporal/strided_slice_2 
2023-01-26 20:30:01,698 - ERROR - Failed to convert node 'StatefulPartitionedCall/TransNet/ColorHistograms/UnsortedSegmentSum' (fct=<bound method SegmentSum.version_13 
of <class 'tf2onnx.onnx_opset.reduction.SegmentSum'>>)
'OP=SegmentSum\nName=StatefulPartitionedCall/TransNet/ColorHistograms/UnsortedSegmentSum\nInputs:\n\tStatefulPartitionedCall/TransNet/ColorHistograms/ones_like:0=Expand, [-1, -1], 6\n\tStatefulPartitionedCall/TransNet/ColorHistograms/add_2:0=Add, [-1, 
-1], 6\n\tStatefulPartitionedCall/TransNet/ColorHistograms/mul_4:0=Mul, [], 6\nOutpus:\n\tStatefulPartitionedCall/TransNet/ColorHistograms/UnsortedSegmentSum:0=[-1], 6'Traceback (most recent call last):
  File "C:\Users\islam\Anaconda3\envs\tf2-env-gpu\lib\site-packages\tf2onnx\tfonnx.py", line 292, in tensorflow_onnx_mapping
    func(g, node, **kwargs, initialized_tables=initialized_tables, dequantize=dequantize)
  File "C:\Users\islam\Anaconda3\envs\tf2-env-gpu\lib\site-packages\tf2onnx\onnx_opset\reduction.py", line 337, in version_13
    cls.any_version(13, ctx, node, **kwargs)
  File "C:\Users\islam\Anaconda3\envs\tf2-env-gpu\lib\site-packages\tf2onnx\onnx_opset\reduction.py", line 212, in any_version
    utils.make_sure(seg_rank == 1, "Segment ops only supported for segments of rank 
1, not %s", seg_rank)
  File "C:\Users\islam\Anaconda3\envs\tf2-env-gpu\lib\site-packages\tf2onnx\utils.py", line 264, in make_sure
    raise ValueError("make_sure failure: " + error_msg % args)
ValueError: make_sure failure: Segment ops only supported for segments of rank 1, not 2
Traceback (most recent call last):
  File "C:\Users\islam\Anaconda3\envs\tf2-env-gpu\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\islam\Anaconda3\envs\tf2-env-gpu\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\islam\Anaconda3\envs\tf2-env-gpu\lib\site-packages\tf2onnx\convert.py", line 706, in <module>
    main()
  File "C:\Users\islam\Anaconda3\envs\tf2-env-gpu\lib\site-packages\tf2onnx\convert.py", line 269, in main
    model_proto, _ = _convert_common(
  File "C:\Users\islam\Anaconda3\envs\tf2-env-gpu\lib\site-packages\tf2onnx\convert.py", line 164, in _convert_common
    g = process_tf_graph(tf_graph, const_node_values=const_node_values,
  File "C:\Users\islam\Anaconda3\envs\tf2-env-gpu\lib\site-packages\tf2onnx\tfonnx.py", line 464, in process_tf_graph
    g = process_graphs(main_g, subgraphs, custom_op_handlers, inputs_as_nchw, outputs_as_nchw, continue_on_error,
  File "C:\Users\islam\Anaconda3\envs\tf2-env-gpu\lib\site-packages\tf2onnx\tfonnx.py", line 516, in process_graphs
    g = process_parsed_graph(main_g, custom_op_handlers, inputs_as_nchw, outputs_as_nchw, continue_on_error,
  File "C:\Users\islam\Anaconda3\envs\tf2-env-gpu\lib\site-packages\tf2onnx\tfonnx.py", line 627, in process_parsed_graph
    raise exceptions[0]
  File "C:\Users\islam\Anaconda3\envs\tf2-env-gpu\lib\site-packages\tf2onnx\tfonnx.py", line 292, in tensorflow_onnx_mapping
    func(g, node, **kwargs, initialized_tables=initialized_tables, dequantize=dequantize)
  File "C:\Users\islam\Anaconda3\envs\tf2-env-gpu\lib\site-packages\tf2onnx\onnx_opset\reduction.py", line 337, in version_13
    cls.any_version(13, ctx, node, **kwargs)
  File "C:\Users\islam\Anaconda3\envs\tf2-env-gpu\lib\site-packages\tf2onnx\onnx_opset\reduction.py", line 212, in any_version
    utils.make_sure(seg_rank == 1, "Segment ops only supported for segments of rank 
1, not %s", seg_rank)
  File "C:\Users\islam\Anaconda3\envs\tf2-env-gpu\lib\site-packages\tf2onnx\utils.py", line 264, in make_sure
    raise ValueError("make_sure failure: " + error_msg % args)
ValueError: make_sure failure: Segment ops only supported for segments of rank 1, not 2

Urgency Urgently needed for deployment of a model in onnxruntime.

System information

  • OS Platform and Distribution (e.g., Linux Ubuntu 18.04*): Windows 10
  • TensorFlow Version: 2.6.0
  • Python version: 3.9.6
  • ONNX version (if applicable, e.g. 1.11*): 1.13.0
  • ONNXRuntime version (if applicable, e.g. 1.11*):

To Reproduce Run the following command to convert the model: python -m tf2onnx.convert --saved-model transnet_inference\transnetv2-weights --output onnx_model\TransNetV2.onnx --opset 17

Screenshots

Additional context

The model is used from this repository and you can also download my exact model from here.

sniper0110 avatar Jan 26 '23 19:01 sniper0110

Have you solved this problem? How did you solve it? I have encountered the same problem as you.

ShienLiXin avatar Apr 07 '23 08:04 ShienLiXin

Unfortunately no

sniper0110 avatar Apr 07 '23 16:04 sniper0110