0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TensorFlow模型優(yōu)化:模型量化

Tensorflowers ? 來(lái)源:TensorFlow ? 作者:TensorFlow ? 2021-02-04 15:40 ? 次閱讀

1. 模型量化需求

為了滿足各種 AI 應(yīng)用對(duì)檢測(cè)精度的要求,深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的寬度、層數(shù)、深度以及各類參數(shù)等數(shù)量急速上升,導(dǎo)致深度學(xué)習(xí)模型占用了更大的存儲(chǔ)空間,需要更長(zhǎng)的推理時(shí)延,不利于工業(yè)化部署;目前的模型都運(yùn)行在 CPU,GPUFPGA,ASIC 等四類芯片上,芯片的算力有限;對(duì)于邊緣設(shè)備上的芯片而言,在存儲(chǔ)、內(nèi)存、功耗及時(shí)延性方面有許多限制,推理效率尤其重要。

作為通用的深度學(xué)習(xí)優(yōu)化的手段之一,模型量化將深度學(xué)習(xí)模型量化為更小的定點(diǎn)模型和更快的推理速度,而且?guī)缀醪粫?huì)有精度損失,其適用于絕大多數(shù)模型和使用場(chǎng)景。此外,模型量化解鎖了定點(diǎn)硬件(Fixed-point hardware) 和下一代硬件加速器的處理能力,能夠?qū)崿F(xiàn)相同時(shí)延的網(wǎng)絡(luò)模型推理功能,硬件價(jià)格只有原來(lái)的幾十分之一,尤其是 FPGA,用硬件電路去實(shí)現(xiàn)網(wǎng)絡(luò)推理功能,時(shí)延是各類芯片中最低的。

TensorFlow 模型優(yōu)化工具包是一套能夠優(yōu)化機(jī)器學(xué)習(xí)模型以便于部署和執(zhí)行的工具。該工具包用途很多,其中包括支持用于以下方面的技術(shù):

通過(guò)模型量化等方式降低云和邊緣設(shè)備(例如移動(dòng)設(shè)備和 IoT 設(shè)備)的延遲時(shí)間和推斷成本。將優(yōu)化后的模型部署到邊緣設(shè)備,這些設(shè)備在處理、內(nèi)存、耗電量、網(wǎng)絡(luò)連接和模型存儲(chǔ)空間方面存在限制。在現(xiàn)有硬件或新的專用加速器上執(zhí)行模型并進(jìn)行優(yōu)化。

根據(jù)您的任務(wù)選擇模型和優(yōu)化工具:

利用現(xiàn)成模型提高性能在很多情況下,預(yù)先優(yōu)化的模型可以提高應(yīng)用的效率。

2. 模型量化過(guò)程

大家都知道模型是有權(quán)重 (w) 和偏置 (b) 組成,其中 w,b 都是以 float32 存儲(chǔ)的,float32 在計(jì)算機(jī)中存儲(chǔ)時(shí)占 32bit,int8 在計(jì)算機(jī)中存儲(chǔ)時(shí)占 8bit;模型量化就是用 int8 等更少位數(shù)的數(shù)據(jù)類型來(lái)代替 float32 表示模型的權(quán)重 (w) 和偏置 (b) 的過(guò)程,從而達(dá)到減少模型尺寸大小、減少模型內(nèi)存消耗及加快模型推理速度等目標(biāo)。

模型量化以損失推理精度為代價(jià),將網(wǎng)絡(luò)中連續(xù)取值或離散取值的浮點(diǎn)型參數(shù)(權(quán)重 w 和輸入 x)線性映射為定點(diǎn)近似 (int8/uint8) 的離散值,取代原有的 float32 格式數(shù)據(jù),同時(shí)保持輸入輸出為浮點(diǎn)型,從而達(dá)到減少模型尺寸大小、減少模型內(nèi)存消耗及加快模型推理速度等目標(biāo)。定點(diǎn)量化近似表示卷積和反卷積如下圖 所示,左邊是原始權(quán)重 float32 分布,右邊是原始權(quán)重 float32 經(jīng)過(guò)量化后又反量化后權(quán)重分布。

32703f02-5408-11eb-8b86-12bb97331649.jpg

32a0429c-5408-11eb-8b86-12bb97331649.jpg

圖 2.1 Int8 量化近似表示卷積

33082e66-5408-11eb-8b86-12bb97331649.jpg

3341b7da-5408-11eb-8b86-12bb97331649.jpg

圖 2.2 Int8 量化近似表示反卷積

3. 模型量化好處

減小模型尺寸,如 8 位整型量化可減少 75% 的模型大?。?/p>

減少存儲(chǔ)空間,在邊緣側(cè)存儲(chǔ)空間不足時(shí)更具有意義;

減少內(nèi)存耗用,更小的模型大小意味著不需要更多的內(nèi)存;

加快推理速度,訪問(wèn)一次 32 位浮點(diǎn)型可以訪問(wèn)四次 int8 整型,整型運(yùn)算比浮點(diǎn)型運(yùn)算更快;CPU 用 int8 計(jì)算的速度更快

減少設(shè)備功耗,內(nèi)存耗用少了推理速度快了自然減少了設(shè)備功耗;

支持微處理器,有些微處理器屬于 8 位的,低功耗運(yùn)行浮點(diǎn)運(yùn)算速度慢,需要進(jìn)行 8bit 量化。

某些硬件加速器如 DSP/NPU 只支持 int8

4. 模型量化原理

模型前向推理過(guò)程中所有的計(jì)算都可以簡(jiǎn)化為 x= w*x +b; x 是輸入,也叫作 FeatureMap,w 是權(quán)重,b 是偏置;實(shí)際過(guò)程中 b 對(duì)模型的推理結(jié)果影響不大,一般丟棄。原本 w,x 是 float32,現(xiàn)在使用 int8 來(lái)表示為 qw,qx;模型量化的原理就是定點(diǎn) (qw qx) 與浮點(diǎn) (w,x),建立了一種有效的數(shù)據(jù)映射關(guān)系.。不僅僅量化權(quán)重 W ,輸入 X 也要量化;詳解如下:

R 表示真實(shí)的浮點(diǎn)值(w 或者 x),

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3261

    瀏覽量

    48913
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8424

    瀏覽量

    132764
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5507

    瀏覽量

    121269

原文標(biāo)題:社區(qū)分享 | TensorFlow 模型優(yōu)化:模型量化

文章出處:【微信號(hào):tensorflowers,微信公眾號(hào):Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Meta發(fā)布Llama 3.2量化模型

    近日,Meta在開源Llama 3.2的1B與3B模型后,再次為人工智能領(lǐng)域帶來(lái)了新進(jìn)展。10月24日,Meta正式推出了這兩個(gè)模型量化版本,旨在進(jìn)一步優(yōu)化
    的頭像 發(fā)表于 10-29 11:05 ?419次閱讀

    理解LLM中的模型量化

    在本文中,我們將探討一種廣泛采用的技術(shù),用于減小大型語(yǔ)言模型(LLM)的大小和計(jì)算需求,以便將這些模型部署到邊緣設(shè)備上。這項(xiàng)技術(shù)稱為模型量化。它使得人工智能
    的頭像 發(fā)表于 10-25 11:26 ?254次閱讀
    理解LLM中的<b class='flag-5'>模型</b><b class='flag-5'>量化</b>

    AI大模型的性能優(yōu)化方法

    AI大模型的性能優(yōu)化是一個(gè)復(fù)雜而關(guān)鍵的任務(wù),涉及多個(gè)方面和策略。以下是一些主要的性能優(yōu)化方法: 一、模型壓縮與優(yōu)化
    的頭像 發(fā)表于 10-23 15:01 ?772次閱讀

    快速部署Tensorflow和TFLITE模型在Jacinto7 Soc

    電子發(fā)燒友網(wǎng)站提供《快速部署Tensorflow和TFLITE模型在Jacinto7 Soc.pdf》資料免費(fèi)下載
    發(fā)表于 09-27 11:41 ?0次下載
    快速部署<b class='flag-5'>Tensorflow</b>和TFLITE<b class='flag-5'>模型</b>在Jacinto7 Soc

    【飛凌嵌入式OK3576-C開發(fā)板體驗(yàn)】rkllm模型量化構(gòu)建

    (model = modelpath) if ret != 0: print(\'Load model failed!\') exit(ret) 模型量化構(gòu)建 # Build model ret
    發(fā)表于 08-27 22:50

    stm32mp135d的板子可不可以跑tensorflow模型???

    請(qǐng)問(wèn)是stm32mp135d的板子可不可以跑tensorflow模型???
    發(fā)表于 07-18 06:49

    深度神經(jīng)網(wǎng)絡(luò)模型量化的基本方法

    深度神經(jīng)網(wǎng)絡(luò)模型量化是深度學(xué)習(xí)領(lǐng)域中的一種重要優(yōu)化技術(shù),旨在通過(guò)減少模型參數(shù)的精度(即從高精度浮點(diǎn)數(shù)如32位浮點(diǎn)數(shù)FP32降低到低精度整數(shù)如8位整數(shù)INT8或更低)來(lái)降低
    的頭像 發(fā)表于 07-15 11:26 ?711次閱讀

    深度學(xué)習(xí)模型量化方法

    深度學(xué)習(xí)模型量化是一種重要的模型量化技術(shù),旨在通過(guò)減少網(wǎng)絡(luò)參數(shù)的比特寬度來(lái)減小模型大小和加速推理過(guò)程,同時(shí)盡量保持
    的頭像 發(fā)表于 07-15 11:01 ?503次閱讀
    深度學(xué)習(xí)<b class='flag-5'>模型</b><b class='flag-5'>量化</b>方法

    使用TensorFlow進(jìn)行神經(jīng)網(wǎng)絡(luò)模型更新

    使用TensorFlow進(jìn)行神經(jīng)網(wǎng)絡(luò)模型的更新是一個(gè)涉及多個(gè)步驟的過(guò)程,包括模型定義、訓(xùn)練、評(píng)估以及根據(jù)新數(shù)據(jù)或需求進(jìn)行模型微調(diào)(Fine-tuning)或重新訓(xùn)練。下面我將詳細(xì)闡述這
    的頭像 發(fā)表于 07-12 11:51 ?441次閱讀

    請(qǐng)問(wèn)ESP32如何運(yùn)行TensorFlow模型?

    請(qǐng)問(wèn)ESP32如何運(yùn)行TensorFlow模型?
    發(fā)表于 07-09 07:30

    tensorflow簡(jiǎn)單的模型訓(xùn)練

    在本文中,我們將詳細(xì)介紹如何使用TensorFlow進(jìn)行簡(jiǎn)單的模型訓(xùn)練。TensorFlow是一個(gè)開源的機(jī)器學(xué)習(xí)庫(kù),廣泛用于各種機(jī)器學(xué)習(xí)任務(wù),包括圖像識(shí)別、自然語(yǔ)言處理等。我們將從安裝
    的頭像 發(fā)表于 07-05 09:38 ?711次閱讀

    keras模型轉(zhuǎn)tensorflow session

    在這篇文章中,我們將討論如何將Keras模型轉(zhuǎn)換為TensorFlow session。 Keras和TensorFlow簡(jiǎn)介 Keras是一個(gè)高級(jí)神經(jīng)網(wǎng)絡(luò)API,它提供了一種簡(jiǎn)單、快速的方式來(lái)構(gòu)建
    的頭像 發(fā)表于 07-05 09:36 ?560次閱讀

    如何使用Tensorflow保存或加載模型

    TensorFlow是一個(gè)廣泛使用的開源機(jī)器學(xué)習(xí)庫(kù),它提供了豐富的API來(lái)構(gòu)建和訓(xùn)練各種深度學(xué)習(xí)模型。在模型訓(xùn)練完成后,保存模型以便將來(lái)使用或部署是一項(xiàng)常見的需求。同樣,加載已保存的
    的頭像 發(fā)表于 07-04 13:07 ?1602次閱讀

    esp-dl int8量化模型數(shù)據(jù)集評(píng)估精度下降的疑問(wèn)求解?

    一 試著將模型進(jìn)行了esp-dl上int16和int8的量化,并在測(cè)試數(shù)據(jù)集上進(jìn)行精度評(píng)估,其中int16的模型精度基本沒(méi)有下降,但是int8的模型評(píng)估精度下降了很多,目前正在嘗試修改
    發(fā)表于 06-28 15:10

    使用esp-dl中的example量化我的YOLO模型時(shí),提示ValueError: current model is not supported by esp-dl錯(cuò)誤,為什么?

    使用esp-dl中的example量化我的YOLO模型時(shí),提示:ValueError: current model is not supported by esp-dl 錯(cuò)誤, 請(qǐng)看我的代碼和模型
    發(fā)表于 06-28 06:47