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

相关推荐
love530love2 分钟前
2026年终极防坑指南:基于 EPGF 架构彻底“本地化” UV 环境与工具
人工智能·windows·python·架构·devops·uv·epgf
糖果店的幽灵2 分钟前
AI 驱动 Selenium 测试框架最佳实践:从传统自动化到智能体测试
人工智能·selenium·自动化
人民新视野3 分钟前
2026美墨加世界杯伊朗VS新西兰预测分析亚洋二线实力大比拼
人工智能
qq_411262427 分钟前
四博智联AI开发宝典(2/3):后端部署、OTA与AT+MCP接入
人工智能·ai·四博
QiLinkOS7 分钟前
极客精神与商业思维的融合实践(2)
c语言·c++·人工智能·算法·开源协议
逻辑君11 分钟前
认知神经科学研究报告【20260071】
人工智能·深度学习·机器学习·数学建模
Eloudy13 分钟前
伊辛解码(Ising Decoding)
人工智能·量子计算
财经资讯数据_灵砚智能13 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年6月12日
人工智能·python·ai·信息可视化·自然语言处理·ai编程·灵砚智能
江华森15 分钟前
Python 3 实战教程:从零基础到项目实战
开发语言·python
deephub19 分钟前
相关性与因果性:识别伪相关以提升模型在真实环境的可用性
人工智能·机器学习·数据挖掘·数据分析