TensorRT量化INT8模型报错记录及解决方案

基于C++将onnx 模型 转 TensorRT 模型(int8)

部分命令如下:

config->setFlag(nvinfer1::BuilderFlag::kINT8);
ICudaEngine* engine = builder->buildEngineWithConfig(*network, *config);

出现以下报错:

Error Code 4: Internal Error (Calibration failure occurred with no scaling factors detected. This could be due to no int8 calibrator or insufficient custom scales for network layers. Please see int8 sample to setup calibration correctly.)

并且返回的engine为nullptr。

测试显卡:1080Ti

原因:

查看了网上其他人反应的情况,在1080Ti显卡上会出现该问题,但在2080Ti上正常。https://github.com/NVIDIA/retinanet-examples/issues/129

由于没有在2080Ti上测试,不知其结果如何,但在3060(12G版本)上仍然有以上报错。

突然想起,可以采用trtexec进行模型转换。

于是采用以下命令

trtexec --onnx=test.onnx --saveEngine=test_int8.engine --int8

成功将将模型进行转化,没有任何报错。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值