torch量化的流程

Posted 踟蹰横渡口,彳亍上滩舟。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了torch量化的流程相关的知识,希望对你有一定的参考价值。

量化工作流程

PyTorch 提供了三种量化模型的方法。
训练后动态量化:

这是最简单的量化形式,其中权重被提前量化,而激活在推理过程中被动态量化。 这用于以下情况:模型执行时间主要由从内存中加载权重而不是计算矩阵乘法来决定。 对于小批量的 LSTM 和 Transformer 类型的模型,这是正确的。 只需调用一次 torch.quantization.quantize_dynamic() ,即可将动态量化应用于整个模型。 请参阅量化教程

训练后静态量化:这是最常用的量化形式,其中权重是提前量化的,并且基于观察校准过程中模型的行为来预先计算激活张量的比例因子和偏差。 训练后量化通常是在内存带宽和计算节省都很重要的情况下进行的,而 CNN 是典型的用例。 进行训练后量化的一般过程是:

准备模型: 通过添加 QuantStub 和 DeQuantStub 模块,指定在何处明确量化激活和量化数量。 b。 确保不重复使用模块。 C。 将所有需要重新量化的操作转换为模块

将诸如 conv + relu 或 conv + batchnorm + relu 之类的保险丝操作融合在一起,以提高模型的准确性和性能。

指定\'97 量化方法的配置,例如选择对称或非对称量化以及 MinMax 或 L2Norm 校准技术。

使用 torch.quantization.prepare(

以上是关于torch量化的流程的主要内容,如果未能解决你的问题,请参考以下文章

torch量化其他功能(量化反量化)

torch量化感知训练示例项目

torch量化训练后导出onnx模型并运行

适配PyTorch FX,OneFlow让量化感知训练更简单

如何对两个 PyTorch 量化张量进行矩阵相乘?

VSCode自定义代码片段——git命令操作一个完整流程