量化导论基本介绍
Posted 踟蹰横渡口,彳亍上滩舟。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了量化导论基本介绍相关的知识,希望对你有一定的参考价值。
量化导论
量化是指用于执行计算并以低于浮点精度的位宽存储张量的技术。 量化模型对张量使用整数而不是浮点值执行部分或全部运算。 这允许更紧凑的模型表示,并在许多硬件平台上使用高性能矢量化操作。 与典型的 FP32 型号相比,PyTorch 支持 INT8 量化,从而可将模型大小减少 4 倍,并将内存带宽要求减少 4 倍。 与 FP32 计算相比,对 INT8 计算的硬件支持通常快 2 到 4 倍。 量化主要是一种加速推理的技术,并且量化算子仅支持前向传递。
PyTorch 支持多种方法来量化深度学习模型。 在大多数情况下,该模型在 FP32 中训练,然后将模型转换为 INT8。 此外,PyTorch 还支持量化意识训练,该训练使用伪量化模块对前向和后向传递中的量化误差进行建模。 注意,整个计算是在浮点数中进行的。 在量化意识训练结束时,PyTorch 提供转换功能,将训练后的模型转换为较低的精度。
在较低级别,PyTorch 提供了一种表示量化张量并对其执行操作的方法。 它们可用于直接构建以较低的精度执行全部或部分计算的模型。 提供了更高级别的 API,这些 API 合并了将 FP32 模型转换为较低精度并降低精度损失的典型工作流程。
如今,PyTorch 支持以下后端以有效地运行量化运算符:
-
具有 AVX2 支持或更高版本的 x86 CPU(在没有 AVX2 的情况下,某些操作的执行效率较低)
-
ARM CPU(通常在移动/嵌入式设备中找到)
相应的实现是根据 PyTorch 构建模式自动选择的。
注意
PyTorch 1.3 尚未在 CUDA 上提供量化的操作员实施-这是未来工作的方向。 将模型移至 CPU,以测试量化功能。
以上是关于量化导论基本介绍的主要内容,如果未能解决你的问题,请参考以下文章