如何将 yolov8 转换为 tflite?

问题描述 投票:0回答:0
I get:
PyTorch: starting from D:\CODE\pycharm\yolov8-ultralytics-main\ultralytics\yolo\v8\detect\yolov8s.pt with input shape (1, 3, 640, 640) BCHW and output shape(s) (1, 84, 8400) (21.5 MB)

TensorFlow SavedModel: starting export with tensorflow 2.12.0...

ONNX: starting export with onnx 1.13.1...
ONNX: simplifying with onnxsim 0.4.19...
ONNX: simplifier failure: [ShapeInferenceError] (op_type:Gather, node name: /model.2/Gather): [TypeInferenceError] Inferred elem type differs from existing elem type: (FLOAT) vs (INT64)
ONNX: export success  1.5s, saved as D:\CODE\pycharm\yolov8-ultralytics-main\ultralytics\yolo\v8\detect\yolov8s.onnx (42.8 MB)

TensorFlow SavedModel: running 'onnx2tf -i D:\CODE\pycharm\yolov8-ultralytics-main\ultralytics\yolo\v8\detect\yolov8s.onnx -o D:\CODE\pycharm\yolov8-ultralytics-main\ultralytics\yolo\v8\detect\yolov8s_saved_model -nuo --non_verbose'
Traceback (most recent call last):
  File "D:\Anaconda3\envs\yolov5_env\lib\site-packages\onnx2tf\utils\common_functions.py", line 281, in print_wrapper_func
    result = func(*args, **kwargs)
  File "D:\Anaconda3\envs\yolov5_env\lib\site-packages\onnx2tf\utils\common_functions.py", line 359, in inverted_operation_enable_disable_wrapper_func
    result = func(*args, **kwargs)
  File "D:\Anaconda3\envs\yolov5_env\lib\site-packages\onnx2tf\utils\common_functions.py", line 50, in get_replacement_parameter_wrapper_func
    func(*args, **kwargs)
  File "D:\Anaconda3\envs\yolov5_env\lib\site-packages\onnx2tf\ops\MaxPool.py", line 106, in make_node
    tf_pads = calc_tf_pooling_pads(
  File "D:\Anaconda3\envs\yolov5_env\lib\site-packages\onnx2tf\utils\common_functions.py", line 4011, in calc_tf_pooling_pads
    same_output_shape = math.floor((i - 1) / s) + 1
TypeError: unsupported operand type(s) for -: 'NoneType' and 'int'
ERROR: The trace log is below.
ERROR: input_onnx_file_path: D:\CODE\pycharm\yolov8-ultralytics-main\ultralytics\yolo\v8\detect\yolov8s.onnx
ERROR: onnx_op_name: /model.9/m/MaxPool
ERROR: Read this and deal with it. https://github.com/PINTO0309/onnx2tf#parameter-replacement
ERROR: Alternatively, if the input OP has a dynamic dimension, use the -b or -ois option to rewrite it to a static shape and try again.
ERROR: If the input OP of ONNX before conversion is NHWC or an irregular channel arrangement other than NCHW, use the -kt or -kat option.
ERROR: Also, for models that include NonMaxSuppression in the post-processing, try the -onwdt option.
TensorFlow SavedModel: export failure  6.9s: SavedModel file does not exist at: D:\CODE\pycharm\yolov8-ultralytics-main\ultralytics\yolo\v8\detect\yolov8s_saved_model\{saved_model.pbtxt|saved_model.pb}

TensorFlow Lite: starting export with tensorflow 2.12.0...
TensorFlow Lite: export success  0.0s, saved as D:\CODE\pycharm\yolov8-ultralytics-main\ultralytics\yolo\v8\detect\yolov8s_saved_model\yolov8s_float32.tflite (0.0 MB)

Export complete (7.6s)
Results saved to D:\CODE\pycharm\yolov8-ultralytics-main\ultralytics\yolo\v8\detect
Predict:         yolo predict task=detect model=D:\CODE\pycharm\yolov8-ultralytics-main\ultralytics\yolo\v8\detect\yolov8s_saved_model\yolov8s_float32.tflite imgsz=640 
Validate:        yolo val task=detect model=D:\CODE\pycharm\yolov8-ultralytics-main\ultralytics\yolo\v8\detect\yolov8s_saved_model\yolov8s_float32.tflite imgsz=640 data=coco.yaml 
Visualize:       https://netron.app





我想将模型转换为 Tflite。但是当我跑 yolo 模式=导出模型=D:/CODE/pycharm/yolov8-ultralytics /main/ultralytics/yolo/v8/detect/runs/detect/train/yolov8n/weights/best.pt format=tflite

错误!

python deep-learning yolov8
© www.soinside.com 2019 - 2024. All rights reserved.