TensorRT设置低精度推理

据说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);

 

你可能感兴趣的:(TensorRT,低精度推理)