onnx 模型 转换成 TensorRT 模型 时, INT64 cast down to INT32 问题

问题

在用 onnx 模型 转换成 TensorRT 模型 时,输出以下警告:

[W] [TRT] onnx2trt_utils.cpp:366: Your ONNX model has been generated with INT64 weights, while TensorRT does not natively support INT64. Attempting to cast down to INT32.

原因

TensorRT 不支持 INT64 格式的 权重,只支持 INT32 格式的 权重,所以抛出了这个警告。

有无影响

如果只有这个警告,没有出现什么错误,那么没有影响,参考:
链接: link
在这里插入图片描述

链接: link
在这里插入图片描述

我在实际使用中,也确实没有发现 什么问题,只是看到有警告觉得会不会隐藏问题,所以查了一下。

但是,如果你的 INT64 格式的权重 确实 超过了 INT32 能表示的范围,那么,在转换时(cast down to INT32)就会抛出错误,参考:
链接: link

 [W] [TRT] onnx2trt_utils.cpp:246: One or more weights outside the range of INT32 was clamped

在这里插入图片描述

在这里插入图片描述

解决方法

网上有一些解决办法,如用 onnxsim 简化模型,但是,我尝试了一下,简化了仍然会有这个警告。 如果你遇到了,可以尝试一下:

python -m onnxsim .\best.onnx .\best-sim.onnx

或者在 python 脚本中导出时,在 export 方法中添加这个简化参数:

model.export(format = "onnx", simplify = True, 其他参数)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值