将ONNX模型转换为Tensorflow Lite - 不支持pytorch_half_pixel

0 投票
1 回答
37 浏览
提问于 2025-04-12 20:29

我正在尝试把我的ONNX模型转换成Tensorflow Lite格式。代码很简单,但出现了这个错误。我更新了我的onnx版本,但还是没用。

import onnx
import tensorflow as tf
import onnx_tf
#
#
# README: This file converts an onnx model to tflite
#
#
#

onnx_model_path = '/home/sfrye/segmentation/segmentation_checkpoints/efficientnet/modified-new.onnx'

onnx_model = onnx.load(onnx_model_path)

tf_model = onnx_tf.backend.prepare(onnx_model)
tf_model.export_graph("tflite_model.tf")

这是错误信息


RuntimeError: in user code:

    File "/home/sfrye/miniconda3/envs/mars_env/lib/python3.8/site-packages/onnx_tf/backend_tf_module.py", line 99, in __call__  *
        output_ops = self.backend._onnx_node_to_tensorflow_op(onnx_node,
    File "/home/sfrye/miniconda3/envs/mars_env/lib/python3.8/site-packages/onnx_tf/backend.py", line 347, in _onnx_node_to_tensorflow_op  *
        return handler.handle(node, tensor_dict=tensor_dict, strict=strict)
    File "/home/sfrye/miniconda3/envs/mars_env/lib/python3.8/site-packages/onnx_tf/handlers/handler.py", line 58, in handle  *
        cls.args_check(node, **kwargs)
    File "/home/sfrye/miniconda3/envs/mars_env/lib/python3.8/site-packages/onnx_tf/handlers/backend/resize.py", line 125, in args_check  *
        exception.OP_UNSUPPORTED_EXCEPT(
    File "/home/sfrye/miniconda3/envs/mars_env/lib/python3.8/site-packages/onnx_tf/common/exception.py", line 50, in __call__  *
        raise self._func(self.get_message(op, framework))

    RuntimeError: Resize coordinate_transformation_mode=pytorch_half_pixel is not supported in Tensorflow.

我尝试更新我的onnx,因为这样解决了其他人遇到的同样错误。

1 个回答

0

虽然不是完全一样的情况,但我之前遇到过类似的问题,我是通过在我的 Upsampling2D 层里明确设置 interpolation=bilinear 来解决的。你可以检查一下你使用的任何缩放层。不过,这样做可能需要重新训练模型。

撰写回答