Pytorch 模型优化:自动混合精度与量化?

Dav*_*ord 5 optimization pytorch

我正在尝试优化我的 pytorch 模型。我了解量化的基础知识(将 32 位浮点数更改为 16 位或 8 位的其他数据类型),但我不知道这两种方法有何不同或应选择什么。

我看到 AMP(自动混合精度)https://pytorch.org/tutorials/recipes/recipes/amp_recipe.html 和常规量化https://pytorch.org/tutorials/recipes/quantization.html。

有人可以解释一下区别和应用吗?谢谢。

kHa*_*hit 5

自动混合精度(AMP)的主要目标是减少训练时间。另一方面,量化的目标是提高推理速度。

\n

AMP:并非所有层和操作都需要 fp32 的精度,因此最好使用较低的精度。AMP 负责处理什么操作使用什么精度。它最终有助于加快训练速度。

\n
\n

混合精度尝试将每个操作与其适当的数据类型相匹配,这可以减少网络\xe2\x80\x99s的运行时间和内存占用。

\n
\n

另请注意,在启用 Tensor Core 的 GPU 架构上观察到最大性能增益。

\n

量化将模型参数中的 32 位浮点数转换为 8 位整数。这将显着减小模型大小并提高推理速度。然而,它可能会严重影响模型的准确性。这就是为什么您可以利用量化感知训练 (QAT) 等技术。剩下的你可以阅读你分享的教程。

\n