BUGFix:onnx -> TensorRT转换过程失败

这篇具有很好参考价值的文章主要介绍了BUGFix:onnx -> TensorRT转换过程失败。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

先附上相关的onnx2trt的部分代码:

def onnx2trt(onnx_path):
    logger = trt.Logger(trt.Logger.ERROR)
    builder = trt.Builder(logger)
    network = builder.create_network(1 << int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH))
    parser = trt.OnnxParser(network, logger)
    parser.parse_from_file(onnx_path)
    config = builder.create_builder_config()
    config.max_workspace_size=max_workspace_size
    config.set_flag(trt.BuilderFlag.FP16)
    op = builder.create_optimization_profile()
    # op.set_shape('model0/input', (1, )+shape, (batch_size[0], )+shape, (batch_size[1], )+shape)
    op.set_shape(network.get_input(0).name, (min_batch_size, )+input_shape, (opt_batch_size, )+input_shape, (max_batch_size, )+input_shape)
    config.add_optimization_profile(op)
    engine = builder.build_engine(network, config)
    # trt_path = onnx_path.replace('/onnx/', '/trt/').replace('.onnx', '.plan')
    trt_path = onnx_path.replace('.onnx', '.plan')
    with open(trt_path,'wb') as f:
        f.write(engine.serialize())

在onnx转换TensorRT的过程中,提示15行代码有错误:
config.max_workspace_size=max_workspace_size
其中,max_workspace_size = 1<<30 
# 首先单位是字节,比如 builder.max_workspace_size = 1<< 30 就是 2^30 bytes 即 1 GB。
# 它的作用是给出模型中任一层能使用的内存上限。运行时,每一层需要多少内存系统分配多少,并不是每次都分 1 GB,但不会超过 1 GB。


具体报错信息如下:


TypeError: deserialize_cuda_engine(): incompatible function arguments. The following argument types are supported:
   1. (self: tensorrt.tensorrt.Runtime, serialized_engine: buffer) -> tensorrt.tensorrt.ICudaEngine

Invoked with: <tensorrt.tensorrt.Runtime object at 0x7feecb3c6530>, None

上面这错误可能是由于max_workspace_size分配不够导致的错误,可试着将30放大,但是我这里不管用;
原因是构建nvidia-docker时候,设置 --shm-size =32,共享内存的太小,不支持onnx-TensorRT的操作,这里修改为64,问题得以解决; 

有问题随时交流,欢迎一键三连~

参考:
https://www.cnblogs.com/mrlonely2018/p/14841562.html

 文章来源地址https://www.toymoban.com/news/detail-666165.html

到了这里,关于BUGFix:onnx -> TensorRT转换过程失败的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深度学习】SDXL tensorRT 推理,Stable Diffusion 转onnx,转TensorRT

    juggernautXL_version6Rundiffusion.safetensors文件是pth pytroch文件,需要先转为diffusers 的文件结构。 FP16在后面不好操作,所以最好先是FP32: 有了diffusers 的文件结构,就可以转onnx文件。 项目:https://huggingface.co/docs/diffusers/optimization/onnx stabilityai/stable-diffusion-xl-1.0-tensorrt 项目:https://hug

    2024年01月19日
    浏览(44)
  • AI模型部署落地综述(ONNX/NCNN/TensorRT等)

    导读 费尽心血训练好的深度学习模型如何给别人展示?只在服务器上运行demo怎么吸引别人的目光?怎么才能让自己的成果落地?这篇文章带你进入模型部署的大门。 模型部署的步骤: 训练一个深度学习模型; 使用不同的推理框架对模型进行推理转换; 在应用平台运行转换

    2024年01月22日
    浏览(36)
  • 深度学习模型部署综述(ONNX/NCNN/OpenVINO/TensorRT)

    点击下方 卡片 ,关注“ 自动驾驶之心 ”公众号 ADAS巨卷干货,即可获取 今天自动驾驶之心很荣幸邀请到 逻辑牛 分享深度学习部署的入门介绍,带大家盘一盘ONNX、NCNN、OpenVINO等框架的使用场景、框架特点及代码示例。如果您有相关工作需要分享,请在文末联系我们! 点击

    2024年02月08日
    浏览(38)
  • 模型量化!ONNX转TensorRT(FP32, FP16, INT8)

    本文为Python实现,C++实现链接模型量化 若还没有配置环境(CUDA,CUDNN,TensorRT),请移至C++实现中查看环境配置方法    支持三种不同精度的量化 模型单精度量化 (FP32) 模型半精度量化 (FP16) 模型Int8量化 (INT8) 经测试yolov5,yolov6,yolov7,yolov8转化成功 yolov5: https://github.com/u

    2024年02月16日
    浏览(31)
  • YOLOV5使用(一): docker跑通,详解TensorRT下plugin的onnx

    使用ubuntu为案例 使用端口映射功能也就是说打开jupyter lab的指令是 当然,个人建议直接去vscode端口点击就打开jupyter lab和tensorboard比较方便 YOLO格式的标签文件是一个纯文本文件,每个文件名对应一张图像,每个标签文件中包含了该图像中所有检测到的目标的信息。 YOLOv5的标

    2024年02月04日
    浏览(38)
  • 【AI】yolov5:数据下载、图像标注、训练、预测等,超详细笔记;pytorch转onnx再转TensorRT;训练识别口罩

    https://gitcode.net/mirrors/ultralytics/yolov5/ 1)安装pytorch 2)安装cudnn 3)下载yolov5源码: 4)安装yolov5依赖

    2024年02月15日
    浏览(35)
  • ONNX的结构与转换

    深度学习模型在训练完成之后,部署并应用在生产环境的这一步至关重要,毕竟训练出来的模型不能只接受一些公开数据集和榜单的检验,还需要在真正的业务场景下创造价值,不能只是为了PR而躺在实验机器上 在现有条件下,一般涉及到模型的部署就要涉及到模型的转换,

    2024年02月06日
    浏览(16)
  • onnx模型的转换和使用

    目录 前言  1.torch下将模型转换为onnx模型 2.实际演示转换 3.使用 4.结尾 ONNX(Open Neural Network Exchange)是一种开放式的文件格式,可以用于保存不同深度学习框架下的网络模型和参数,从而方便将模型进行不同框架下的转换。 这里介绍一个函数——torch.onnx.export(): 其中主要使

    2024年02月15日
    浏览(22)
  • PyTorch的ONNX结合MNIST手写数字数据集的应用(.pth和.onnx的转换与onnx运行时)

    在PyTorch以前的模型都是.pth格式,后面Meta跟微软一起做了一个.onnx的通用格式。这里对这两种格式文件,分别做一个介绍,依然使用MNIST数据集来做示例 那pth文件里面是什么结构呢?其实在以前的文章就有介绍过,属于字典类型,而且是 有序字典类型 ,这样就可以按照一定的

    2024年02月11日
    浏览(33)
  • 【Python从入门到人工智能】16个必会的Python内置函数(5)——数据转换与计算(详细语法参考 + 参数说明 + 具体示例)

      你的思绪就像这池水,朋友,稍有外界触动就很难清澈明朗,可如果让它静下来,答案顿时变得清晰了。   🎯 作者主页 : 追光者♂ 🔥          🌸 个人简介 : 计算机专业硕士研究生 💖、 2022年CSDN博客之星人工智能领域TOP4 🌟、 阿里云社区特邀专家博主 🏅、 C

    2023年04月13日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包