tensorrt 使用后,精度可能下降,下降的原因:

1.输入尺寸不一样,

2.rgb bgr模式不对

3.阈值不一样

4.nms阈值不一样。

5.层不一样?

据说TensorRT7实现了尽量低精度运算,还没有使用过。

TensorRT5要设置低精度运算的话,可以设置为Fp16或int8的。

1 Fp16

需要先查询设备是否支持fp16:

bool fp16 = builder->platformHasFastFp16();

返回true了,才能设置引擎以fp16进行推理。

builder->setFp16Mode(true);

2 int8

if (builder->platformHasFastInt8()) { … };

需要先生成int8校准表。怎么生成校准表呢?要通过训练500张左右的图片(最好来自同一个训练集),将网络权重映射到int8的取值范围。

再将int8校准表设置到引擎里。

builder->setInt8Mode(dataType == DataType::kINT8);

builder->setInt8Calibrator(calibrator);

原文链接:https://blog.csdn.net/shizao/article/details/103619026

下表列出了TensorRT层和每个层支持的精确模式,转自:

TensorRT层和每个层支持的精度模式 - 今夜无风 - 博客园

TensorRT运行demo程序sample_uff_ssd.exe,发现用fp16精度运行 比 fp32还慢,如下图所示

原因是:根据NVIDIA的说法,支持full-rate FP16 performance 的型号是: Tesla P100, Quadro GP100, and Jetson TX1/TX2。GTX 1050, 1060, 1070, 1080, Pascal Titan X, Titan Xp, Tesla P40等型号,不支持full-rate FP16,所以,在这些型号中使用fp16精度反而比fp32慢。

简单来说就是硬件有没有Native FP16 support,即native FP16 instructions支持。

转自:TensorRT--用fp16精度运行 比 fp32还慢? - 简书

tensorrt 低精度推理相关推荐

  1. 深度学习模型量化(低精度推理)大总结

    模型量化作为一种能够有效减少模型大小,加速深度学习推理的优化技术,已经得到了学术界和工业界的广泛研究和应用.模型量化有 8/4/2/1 bit等,本文主要讨论目前相对比较成熟的 8-bit 低精度推理 ...

  2. 英伟达TensorRT 8-bit Inference推理

    英伟达TensorRT 8-bit Inference推理 引论 ● 目标:将FP32 CNN转换为INT8,不会造成显著的精度损失. ● 原因:Int8 Math具有更高的吞吐量和更低的内存需求. ...

  3. 低数值精度推理和训练

    低数值精度推理和训练 介绍 如今,大多数商业深度学习应用程序使用 32 位浮点精度 ( ) 来处理训练和推理工作负载.各种研究人员已经证明,深度学习训练和推理都可以以较低的数值精度进行,使用 16 位 ...

  4. 将深度学习低延迟推理性能提高一倍

    将深度学习低延迟推理性能提高一倍 JetPack 3.1 Doubles Jetson's Low-Latency Inference Performance NVIDIA发布了JetPack 3.1 ...

  5. 基于TensorRT车辆实时推理优化

    基于TensorRT车辆实时推理优化 Optimizing NVIDIA TensorRT Conversion for Real-time Inference on Autonomous Vehic ...

  6. tensorrt轻松部署高性能dnn推理_基于TensorRT车辆实时推理优化

    基于TensorRT车辆实时推理优化 Optimizing NVIDIA TensorRT Conversion for Real-time Inference on Autonomous Vehic ...

  7. 低精度神经网络:从数值计算角度优化模型效率

    作者丨林野 学校丨东北大学自然语言处理实验室2019级博士生 研究方向丨机器翻译.模型压缩.模型加速 背景 近年来,随着人工智能的不断兴起,神经网络已经在语音识别.计算机视觉和自然语言处理领域等多个任 ...

  8. 1、pth转onnx模型、onnx转tensorrt模型、python中使用tensorrt进行加速推理(全网最全,不信你打我)

    本文向所有亲们介绍在python当中配置tensorrt环境.使用tensorrt环境进行推理的教程,主要分为两大部分,第一部分环境配置,第二部分前向推理. 第一部分 环境配置 第一步:检查你的系统类 ...

  9. 新增Transformer优化!NVIDIA最新发布TensorRT 8!推理方面取得重大突破

    [导读]近日,英伟达悄悄地发布了TensorRT 8,BERT-Large推理仅需1.2毫秒!同时还加入了量化感知训练和对稀疏性的支持,实现了性能200%的提升.项目已开源. 2019年黄仁勋在GTC ...

最新文章

  1. 【C#小知识】C#中一些易混淆概念总结(七)---------解析抽象类,抽象方法
  2. VMware vCenter Converter Standlone迁移手册
  3. 正则表达式匹配手机号
  4. POJ 2395 Out of Hay
  5. 面试必问:用 Java 写一个内存泄漏程序
  6. display: flex的兼容性写法
  7. verilog实现多周期处理器之——(一)基本概念以及总体框架
  8. HDOJ1181变形课 深搜回溯
  9. ✨✨✨【C语言】带你用最短的时间刷题(附解题思路、具体代码)不断更新(三)✨✨✨
  10. 修改Android手机的分辨率和屏幕密度
  11. php打开文件fopen函数
  12. egret eui.Button改变文本、背景色及是否可点击
  13. 英语口语练习五十五之英语委婉提建议
  14. vue端口号被占用报错npm ERR! @1.0.0 dev: `node build/dev-server.js`
  15. 苍穹变服务器维护中,苍穹变7月1日更新维护公告
  16. 大数据实战之Spark-Flume-Kafka-idea-Mysql实时处理数据并存储
  17. 【Spring系列04】自动装配(Qualifier,Autowired,Resource讲解)
  18. Sublime出现错误——“plugin_host has existed unexpectedly......”
  19. 如何搭建个人博客网站(Mac)
  20. GAN-overview reading note(3)Wasserstein GAN

热门文章

  1. Libgcrypt实现AES加密
  2. DirectX和DirectShow介绍和区别
  3. VS2013打包VC++程序
  4. VS中遇到 _WIN32_WINNT not defined
  5. C++ 程序不一定从 main 处开始执行
  6. OpenStack使用neutron agent-list缺少组件
  7. KVM 虚拟化原理探究--启动过程及各部分虚拟化原理
  8. Linux内核的Oops
  9. 文件分享平台php源码,简易社会化用户文件分享系统 v1.0
  10. linux在文档中查找内容,【Linux】用grep在文档中查找内容