pytorch的三種量化方式詳解


pytorch的三種量化方式詳解

這篇博客詳細介紹了pytorch官方教程提到的三種量化方式的原理,詳細解釋了三種量化方式的區別;

1. 靜態量化 :torch.quantize_per_tensor

  • scale (標度)和 zero_point(零點位置)需要自定義。量化后的模型,不能訓練(不能反向傳播),也不能推理,需要解量化后,才能進行運算
    詳細的解釋,參考這篇博客: 靜態量化

2. 動態量化 : torch.quantization.quantize_dynamic

  • 系統自動選擇最合適的scale (標度)和 zero_point(零點位置),不需要自定義。量化后的模型,可以推理運算,但不能訓練(不能反向傳播)
  • 詳細的解釋,參考這篇博客: 動態量化

3. 量化意識訓練

  • 系統自動選擇最合適的scale (標度)和 zero_point(零點位置),不需要自定義。但這是一種偽量化,量化后的模型權重仍然是32位浮點數,但大小和8位定點數權重的大小相同。偽量化后的模型可以進行訓練。雖然是以32位浮點數進行的訓練,但結果與8位定點數的結果一致。
  • 示例程序: 量化意識訓練

pytorch量化官方教程:

中文教程
English Tutorial


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM