菜橙 2023-08-08 11:38 采纳率: 50%
浏览 26

yolov5 detect.py推理.onnx速度很慢

请问我使用官方的export.py转换出来的onnx推理很慢是什么原因?安装环境时执行的是代码头部给出的命令,pip查看也安装的是onnxruntime-gpu。
转换时参数设置

def parse_opt():
    parser = argparse.ArgumentParser()
    parser.add_argument('--data', type=str, default=ROOT / 'data/nj.yaml', help='dataset.yaml path')
    parser.add_argument('--weights', nargs='+', type=str, default=ROOT / 'best.pt', help='model.pt path(s)')
    parser.add_argument('--imgsz', '--img', '--img-size', nargs='+', type=int, default=[640, 640], help='image (h, w)')
    parser.add_argument('--batch-size', type=int, default=4, help='batch size')
    parser.add_argument('--device', default='cpu', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
    parser.add_argument('--half', action='store_true', help='FP16 half-precision export')
    parser.add_argument('--inplace', action='store_true', help='set YOLOv5 Detect() inplace=True')
    parser.add_argument('--train', action='store_true', help='model.train() mode')
    parser.add_argument('--optimize', action='store_true', help='TorchScript: optimize for mobile')
    parser.add_argument('--int8', action='store_true', help='CoreML/TF INT8 quantization')
    parser.add_argument('--dynamic', action='store_true', help='ONNX/TF: dynamic axes')
    parser.add_argument('--simplify', action='store_true', help='ONNX: simplify model')
    parser.add_argument('--opset', type=int, default=12, help='ONNX: opset version')
    parser.add_argument('--verbose', action='store_true', help='TensorRT: verbose log')
    parser.add_argument('--workspace', type=int, default=4, help='TensorRT: workspace size (GB)')
    parser.add_argument('--nms', action='store_true', help='TF: add NMS to model')
    parser.add_argument('--agnostic-nms', action='store_true', help='TF: add agnostic NMS to model')
    parser.add_argument('--topk-per-class', type=int, default=100, help='TF.js NMS: topk per class to keep')
    parser.add_argument('--topk-all', type=int, default=100, help='TF.js NMS: topk for all classes to keep')
    parser.add_argument('--iou-thres', type=float, default=0.45, help='TF.js NMS: IoU threshold')
    parser.add_argument('--conf-thres', type=float, default=0.25, help='TF.js NMS: confidence threshold')
    parser.add_argument('--include', nargs='+',
                        default=['onnx'],
                        help='torchscript, onnx, openvino, engine, coreml, saved_model, pb, tflite, edgetpu, tfjs')
    opt = parser.parse_args()
    print_args(FILE.stem, opt)
    return opt

  • 写回答

2条回答 默认 最新

  • 玥轩_521 2023-08-08 12:38
    关注

    援引GPT回答:
    导致推理速度慢的原因可能有很多,以下是一些可能的原因:

    1. 模型结构复杂:如果模型的结构非常复杂,包含大量的层和参数,那么推理速度可能会较慢。可以尝试简化模型结构或者使用更轻量级的模型。

    2. 输入图像尺寸过大:如果输入的图像尺寸很大,会增加推理的计算量,导致推理速度较慢。可以尝试将图像尺寸调整为更小的尺寸。

    3. 批处理大小过小:如果批处理大小设置得太小,会导致GPU利用率较低,从而影响推理速度。可以尝试增大批处理大小。

    4. 使用的设备不支持GPU加速:如果使用的设备不支持GPU加速,即使安装了onnxruntime-gpu,推理仍然会在CPU上运行,导致速度慢。可以确认设备是否支持GPU加速。

    5. 模型转换参数设置不合理:在转换模型时,可能需要根据实际情况调整一些参数,例如是否使用半精度(FP16)、是否进行优化等。可以尝试调整这些参数,看看是否会影响推理速度。

    以上是一些可能的原因,具体原因还需要根据实际情况进行排查。可以尝试调整一些参数,或者使用其他工具或框架进行推理,看看是否能够改善推理速度。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月8日

悬赏问题

  • ¥15 平板录音机录音问题解决
  • ¥15 请问维特智能的安卓APP在手机上存储传感器数据后,如何找到它的存储路径?
  • ¥15 (SQL语句|查询结果翻了4倍)
  • ¥15 Odoo17操作下面代码的模块时出现没有'读取'来访问
  • ¥50 .net core 并发调用接口问题
  • ¥15 网上各种方法试过了,pip还是无法使用
  • ¥15 用verilog实现tanh函数和softplus函数
  • ¥15 Hadoop集群部署启动Hadoop时碰到问题
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启