TensorRT 显示量化和隐式量化的区别(Explicit vs Implicit Quantization)

  • 注意:隐式量化已被弃用。建议使用 TensorRT 的量化工具包来创建具有显式量化的模型。

量化网络可以通过两种(互斥的)方式进行处理:使用隐式量化或显式量化。这两种处理模式的主要区别在于是否需要显式控制量化,或者让 TensorRT 构建器选择哪些操作和张量进行量化(隐式)。以下部分提供了更多详细信息。隐式量化仅在量化到 INT8 时受支持。它不能与强类型一起使用(因为类型不会自动调整,唯一将激活值转换为 INT8 或从 INT8 转换回的方法是通过量化(Q)和反量化(DQ)操作符)。

当网络包含 QuantizeLayer 和 DequantizeLayer 层时,TensorRT 使用显式量化模式。当网络中没有 QuantizeLayer 或 DequantizeLayer 层,并且在构建器配置中启用了 INT8 时,TensorRT 使用隐式量化模式。隐式量化模式仅支持 INT8。

在隐式量化的网络中,每个候选量化的激活张量都有一个通过校准过程推导出的或通过 API 函数 setDynamicRange 分配的关联比例因子。如果 TensorRT 决定量化该张量,它将使用此比例因子。

在处理隐式量化的网络时,TensorRT 在应用图优化时将模型视为浮点模型,并在优化层执行时间时机会性地使用 INT8。如果一个层在 INT8 下运行得更快,并且其数据输入和输出已分配量化比例因子,则该层将分配一个 INT8 精度的内核。否则,将分配一个高精度浮点(FP32、FP16 或 BF16)内核。在需要高精度浮点以确保精度而牺牲性能的情况下,可以使用 API Layer::setOutputTypeLayer::setPrecision</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值