pytorch模型量化和移植安卓详细教程

十一下雨,在家撸模型,希望对pytorch模型进行轻量化,间断摸索了几天,效果不错,做个总结分享出来。

量化是一种常见的技术,人们使用它来使模型在推断时运行更快,具有更低的内存占用和更低的功耗,而无需更改模型架构。在这篇博客文章中,我们将简要介绍量化是什么以及如何将量化应用于你的PyTorch模型。

什么是量化

典型的神经网络以32位浮点数(float32)精度运行,这意味着激活和权重张量都以float32表示,并且计算也以float32精度执行。量化尝试将模型的精度降低到更紧凑的数据类型,需要更少的内存存储并且执行计算更快,例如,8位整数(int8)。以int8为例,经过量化后,激活和权重张量都可以以int8存储,并且计算将在int8中执行,通常比float32计算更高效。

我们可以将量化视为对模型的一种压缩,但它不是无损压缩,因为较低精度的数据类型可能具有较小的动态范围和分辨率。因此,我们需要在模型的准确性与由量化带来的加速、内存和功耗节省之间进行权衡。

如何使用PyTorch量化

我们如何从浮点模型获得量化模型呢?一般有两种方式:

● 后训练量化(Post Training Quantization):在我们有一个经过训练的模型之后,我们可以将模型转换为量化模型,这通常很容易应用,但对于某些类型的模型可能会导致一些精度损失。

● 量化感知训练(Quantization Aware Training)ÿ

你可能感兴趣的:(计算机非全日制研究生备考,室内定位,pytorch,android,人工智能)