色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深度學習模型量化方法

OpenCV學堂 ? 來源:OpenCV學堂 ? 2024-07-15 11:01 ? 次閱讀

深度學習模型量化概述

深度學習模型量化是一種重要的模型輕量化技術,旨在通過減少網絡參數的比特寬度來減小模型大小和加速推理過程,同時盡量保持模型性能。從而達到把模型部署到邊緣或者低算力設備上,實現降本增效的目標。

01定義

模型量化是指將神經網絡的浮點算法轉換為定點算法,通常涉及將浮點數參數轉換為低位數的整數,例如從32位浮點數(FP32)到8位整數(INT8)。這一技術通過減少模型中參數的位數來降低模型的存儲需求和計算復雜性。

02主要類型

靜態量化:

在模型訓練后進行,不涉及重新訓練。它通常用于不需要細粒度調優的場景。

動態量化:

在模型推理時進行,對權重進行量化,但保留中間激活的浮點數表示。它適用于那些需要保持較高推理精度的應用。

量化感知訓練QAT

QAT - Quantization Aware Training, 在訓練過程中將量化考慮在內,通過模擬低精度的效果來訓練模型。這種方法可以最大限度地減少量化對模型精度的影響。

03量化方法

均勻量化:

所有權重與激活值被量化到均勻間隔的離散值上。這簡化了量化的實現,是一種普遍使用的量化方法。

非均勻量化:

考量到分布的不均勻性,通過對數或其他方式量化,目的是最小化量化前后的信號失真。

對稱與非對稱量化:

對稱量化在正負數值上使用相同的量化間隔,非對稱量化則允許正負數值有不同的量化間隔。

常用量化框架

當前工業界常用的主流量化工具與框架主要有以下三種!

01PyTorch(torch.quantization)

支持訓練后量化。PyTorch的量化支持主要包括三種方式:訓練后動態量化(Post Training Dynamic Quantization)、訓練后靜態量化(Post Training Static Quantization)以及量化感知訓練(Quantization Aware Training, QAT)。

訓練后量化

1. 訓練后動態量化

概述:訓練后動態量化是指在模型訓練完成后,僅對模型的權重進行量化,而激活(activations)在推理過程中進行量化。這種方式適用于那些對精度要求不是特別高,但需要快速部署的場景。

特點:

簡單易用:不需要重新訓練模型,只需要對訓練好的模型進行量化。 性能提升:與浮點數模型相比,量化后的模型在推理速度上會有顯著提升,同時模型大小也會減小。 示例代碼:

import torch 
from torch import nn 
from torch.quantization import quantize_dynamic 




class DemoModel(nn.Module): 
    def __init__(self): 
        super(DemoModel, self).__init__() 
        self.conv = nn.Conv2d(in_channels=1, out_channels=1, kernel_size=1) 
        self.relu = nn.ReLU() 
        self.fc = nn.Linear(2, 2) 


    def forward(self, x): 
        x = self.conv(x) 
        x = self.relu(x) 
        x = self.fc(x) 
        return x 


model_fp32 = DemoModel() 
model_int8 = quantize_dynamic( 
    model=model_fp32, 
    qconfig_spec={nn.Linear},  # 僅對Linear層進行量化 
    dtype=torch.qint8 
)

2. 訓練后靜態量化

概述:訓練后靜態量化是指對模型訓練完成后,不僅對權重進行量化,還對激活進行量化。這種方式需要收集一些代表性的數據來標定(calibrate)量化參數,以確保量化后的模型精度盡可能接近原始模型。由于同時量化了權重和激活,因此量化后的模型精度通常比動態量化更高。需要收集代表性的數據來標定量化參數。

示例流程:

1. 準備標定數據集。

2. 加載并準備模型(設置eval模式,并附加量化配置)。

3. 使用標定數據集對模型進行標定,以收集權重和激活的分布信息

4. 將標定后的模型轉換為量化模型。

量化感知訓練(QAT)

雖然QAT不屬于訓練后量化的范疇,但它是另一種重要的量化方式,值得提及。QAT是在模型訓練過程中插入偽量化模塊,模擬量化效應,從而提高模型對量化操作的適應能力。這種方式可以在一定程度上彌補靜態量化在精度上的損失。

02OpenVINO NCCF

OpenVINO NCCF(Neural Network Compression Framework)量化框架是OpenVINO工具套件中的一個重要組成部分,旨在幫助開發者通過量化技術優化深度學習模型的性能。OpenVINO NCCF是一個用于深度學習模型壓縮的框架,它提供了多種壓縮算法,包括量化、剪枝、蒸餾等,以幫助開發者減小模型大小、提高推理速度和降低功耗。量化作為其中的一種重要技術,通過將模型中的浮點數參數轉換為整數,實現了模型的壓縮和加速。

OpenVINO NCCF量化流程

OpenVINO NCCF量化流程通常包括以下幾個步驟:

模型準備:

首先,需要有一個訓練好的深度學習模型,該模型可以是PyTorch、TensorFlow等框架下的模型。

模型轉換:

將訓練好的模型轉換為OpenVINO的中間表示(IR)格式。這一步是可選的,但轉換為IR格式可以更好地利用OpenVINO的優化功能。

量化配置:

配置量化參數,包括量化精度(如INT8、FP16等)、量化策略(如對稱量化、非對稱量化等)以及量化目標設備(如CPUGPU等)。

量化執行:

使用OpenVINO NCCF提供的量化工具或API對模型進行量化。這一步通常包括前向傳播以收集統計信息、計算量化參數以及應用量化參數到模型權重和激活中。

模型評估:

對量化后的模型進行評估,以驗證量化對模型精度的影響。如果精度損失在可接受范圍內,則可以繼續使用量化后的模型;否則,需要調整量化參數并重新執行量化。

模型部署:

將量化后的模型部署到目標設備上,進行實際的推理任務。

OpenVINO NCCF量化優勢

高精度保持:

OpenVINO NCCF提供了多種量化策略和算法,可以幫助開發者在保持模型精度的同時實現顯著的壓縮和加速。

硬件支持:

OpenVINO NCCF支持多種硬件平臺,包括Intel CPU、GPU、FPGA等,使得量化后的模型可以在不同的硬件上實現高效的推理。

易用性:

OpenVINO NCCF提供了豐富的API和工具,使得開發者可以輕松地集成和使用量化功能,無需深入了解底層的量化算法和優化技術。

ResNet18的圖像分類模型FP32與INT8量化版本推理速度比較:

cca197ba-3cc6-11ef-a4c8-92fbcf53809c.png

在OpenVINO的官方文檔和社區中,可以找到關于NCCF量化的詳細示例和教程。這些示例通常包括模型準備、轉換、量化、評估和部署等整個流程,為開發者提供了寶貴的參考和指導。

03TensorRT量化框架

TensorRT量化是深度學習模型優化的一種重要手段,它通過將模型中的參數(如權重)從浮點數(如FP32)轉換為整數(如INT8)來減少模型的存儲和計算成本,從而達到模型壓縮和運算加速的目的。

TensorRT量化的基本概念

NVIDIA的TensorRT是一個高性能的深度學習推理優化器,它支持多種深度學習框架(如TensorFlow、PyTorch等)的模型,并提供了一系列的優化技術,包括量化、層融合、動態張量等,以加速深度學習模型的推理速度。

TensorRT量化的目標 減少模型大小:

通過量化,可以將模型的參數從浮點數轉換為整數,從而顯著減少模型的存儲需求。

加速推理速度:

在支持INT8等低精度整數運算的硬件上,使用量化后的模型可以顯著提高推理速度。

降低功耗:

在一些嵌入式或移動設備上,使用量化后的模型可以降低功耗,延長設備的使用時間。

TensorRT量化的實現方式

TensorRT支持多種量化方式,主要包括隱式量化和顯式量化兩種:

隱式量化:

在TensorRT的早期版本中,隱式量化是主要的量化方式。它不需要修改模型結構或訓練代碼,只需要在模型推理過程中使用TensorRT提供的量化工具進行量化。隱式量化通常適用于訓練后量化(PTQ)場景。

顯式量化:

從TensorRT 8.0版本開始,顯式量化得到了全面支持。顯式量化允許在模型訓練過程中插入量化指令(如QDQ操作),并在模型推理過程中使用TensorRT進行量化。顯式量化可以提供更高的量化精度和更好的性能優化。

TensorRT量化的校準方法

在TensorRT中,量化過程中需要使用校準數據集來確定量化參數(如縮放因子和零點)。TensorRT支持多種校準方法,包括熵校準和最小最大值校準等:

熵校準:

熵校準是一種動態校準算法,它使用KL散度(KL Divergence)來度量推理數據和校準數據之間的分布差異。在校準過程中,TensorRT會分析每個張量的分布,并選擇合適的量化參數以最小化KL散度。

最小最大值校準:

最小最大值校準使用最小最大值算法來計算量化參數。在校準過程中,TensorRT會統計校準數據中的最小值和最大值,并根據這些值來計算量化參數。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 模型
    +關注

    關注

    1

    文章

    3226

    瀏覽量

    48807
  • 深度學習
    +關注

    關注

    73

    文章

    5500

    瀏覽量

    121111
  • pytorch
    +關注

    關注

    2

    文章

    807

    瀏覽量

    13199

原文標題:深度學習模型量化方法與框架介紹

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    量化算法介紹及其特點分析

    模型量化作為一種能夠有效減少模型大小,加速深度學習推理的優化技術,已經得到了學術界和工業界的廣泛研究和應用。
    發表于 07-26 08:08

    深度學習模型是如何創建的?

    具有深度學習模型的嵌入式系統應用程序帶來了巨大的好處。深度學習嵌入式系統已經改變了各個行業的企業和組織。
    發表于 10-27 06:34

    什么是深度學習?使用FPGA進行深度學習的好處?

    ,即使使用具有一定低位寬的數據,深度學習推理也不會降低最終精度。目前據說8位左右可以提供穩定的準確率,但最新的研究表明,已經出現了即使降低到4位或2位也能獲得很好準確率的模型學習方法
    發表于 02-17 16:56

    模型驅動深度學習的標準流程與學習方法解析

    模型驅動的深度學習方法近年來,深度學習在人工智能領域一系列困難問題上取得了突破性成功應用。
    的頭像 發表于 01-24 11:30 ?4920次閱讀
    <b class='flag-5'>模型</b>驅動<b class='flag-5'>深度</b><b class='flag-5'>學習</b>的標準流程與<b class='flag-5'>學習方法</b>解析

    針對線性回歸模型深度學習模型,介紹了確定訓練數據集規模的方法

    學習模型的表現會按照冪定律持續提升。例如,有人曾用深度學習方法對三億張圖像進行分類,發現模型的表現隨著訓練數據規模的增長按對數關系提升。
    的頭像 發表于 05-05 11:03 ?6160次閱讀

    深度學習模型壓縮與加速綜述

    目前在深度學習領域分類兩個派別,一派為學院派,研究強大、復雜的模型網絡和實驗方法,為了追求更高的性能;另一派為工程派,旨在將算法更穩定、高效的落地在硬件平臺上,效率是其追求的目標。復雜
    的頭像 發表于 06-08 17:26 ?5218次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>學習</b><b class='flag-5'>模型</b>壓縮與加速綜述

    基于深度學習的視頻質量評價方法模型研究

    視頻質量評價(VQA)是以人眼的主觀質量評估結果為依據,使用算法模型對失真視頻進行評估。傳統的評估方法難以做到主觀評價結果與客觀評價結果相一致。基于深度學習的視頻質量評價
    發表于 03-29 15:46 ?81次下載
    基于<b class='flag-5'>深度</b><b class='flag-5'>學習</b>的視頻質量評價<b class='flag-5'>方法</b>及<b class='flag-5'>模型</b>研究

    結合基擴展模型深度學習的信道估計方法

    結合基擴展模型深度學習的信道估計方法
    發表于 06-30 10:43 ?62次下載

    模型為什么是深度學習的未來?

    與傳統機器學習相比,深度學習是從數據中學習,而大模型則是通過使用大量的模型來訓練數據。
    的頭像 發表于 02-16 11:32 ?2103次閱讀

    YOLOv8模型ONNX格式INT8量化輕松搞定

    深度學習模型量化支持深度學習模型部署框架支持的一種輕
    的頭像 發表于 07-18 09:34 ?3605次閱讀
    YOLOv8<b class='flag-5'>模型</b>ONNX格式INT8<b class='flag-5'>量化</b>輕松搞定

    深度學習模型優化與調試方法

    深度學習模型在訓練過程中,往往會遇到各種問題和挑戰,如過擬合、欠擬合、梯度消失或爆炸等。因此,對深度學習
    的頭像 發表于 07-01 11:41 ?799次閱讀

    深度學習中的模型權重

    深度學習這一充滿無限可能性的領域中,模型權重(Weights)作為其核心組成部分,扮演著至關重要的角色。它們不僅是模型學習的基石,更是
    的頭像 發表于 07-04 11:49 ?1214次閱讀

    深度學習中的時間序列分類方法

    的發展,基于深度學習的TSC方法逐漸展現出其強大的自動特征提取和分類能力。本文將從多個角度對深度學習在時間序列分類中的應用進行綜述,探討常用
    的頭像 發表于 07-09 15:54 ?876次閱讀

    深度神經網絡模型量化的基本方法

    深度神經網絡模型量化深度學習領域中的一種重要優化技術,旨在通過減少模型參數的精度(即從高精度浮
    的頭像 發表于 07-15 11:26 ?664次閱讀

    AI大模型深度學習的關系

    AI大模型深度學習之間存在著密不可分的關系,它們互為促進,相輔相成。以下是對兩者關系的介紹: 一、深度學習是AI大
    的頭像 發表于 10-23 15:25 ?648次閱讀
    主站蜘蛛池模板: 年轻的老师5理伦片| 午夜国产在线观看| 亚洲 无码 制服 日韩| 一级特黄视频| 成年人视频在线免费看| 国产亚洲精品V在线观看一| 男子扒开美女尿口做羞羞的事| 爽娇妻快高h| 2021精品高清卡1卡2卡3麻豆| 囯产精品一品二区三区| 久久全国免费久久青青小草| 少妇厨房愉情理9伦片视频| 最近免费视频中文2019完整版 | 国产成人在线免费| 菊地凛子av| 亚洲国产成人在线| 俺也去最新地址| 久青草国产观看在线视频| 无码骚夜夜精品| brazzers欧美孕交| 精品无码一区二区三区中文字幕| 日本久久道一区二区三区| 中文字幕精品AV内射夜夜夜| 国产精品无码亚洲精品| 青青草在线 视频| 中国老太太xxx| 国产最猛性XXXX69交| 日韩欧美一区二区三区免费观看| 在线视频a| 湖南电台在线收听| 熟女人妻-蜜臀AV-首页| 99视频精品全部免费免费观| 久久9精品区-无套内射无码| 午夜一区二区三区| 成人中文在线| 暖暖的视频完整视频免费韩国| 亚洲在线中文无码首页| 国产欧美日韩国产高清| 色噜噜狠狠色综合中文字幕| chinese极品嫩模videos| 美女丝袜夹b|