一起实践量化番外篇——TensorRT-8的量化细节 好久不见各位~ 这篇文章很久之前写完一直没有整理,最近终于是整理差不多了,赶紧发出来。 本文接着《必看部署系列-神经网络量化教程:第一讲!》 (当然也不排除之后一些优化框架也会有训练功能,因此同样可以在优化框架中做) TensorRT-8可以显式地load包含有QAT量化信息的ONNX模型,实现一系列优化后,可以生成INT8的engine。
本教程基于目前(2021-4-26)最新版TensorRT-7.2.3.4,TensorRT更新频繁,TensorRT-8可能不久也会发布,不过TensorRT对于向下兼容的API做的还是比较好的,不必担心太多的迁移问题 ONNX2TensorRT,即ONNX转换trt的工具 手动构造模型结构,然后手动将权重信息挪过去,非常灵活但是时间成本略高,有大佬已经尝试过了:tensorrtx 不过目前TensorRT对ONNX的支持最好,TensorRT
除非模型简单都可以直接量化,否则需要在torch.nn.Module中添加很多torch.quantization.QuantStub()的标记精细化整个模型的量化策略,这个其实和之前在量化番外篇——TensorRT 关于TensorRT的量化细节也可以参考这篇文章量化番外篇——TensorRT-8的量化细节。
这个模型是由TensorRT官方提供的pytorch-quantization工具对Pytorch模型进行量化后导出ONNX,然后再由TensorRT-8转化得到的engine,这个engine的精度是
AI部署 在工作还有在学校的一段时间,我都做了一些部署的工作,也写了几篇关于部署的文章(当然还有有很多坑没填): 量化番外篇——TensorRT-8的量化细节 必看部署系列~懂你的神经网络量化教程:第一讲