【開發】模型部署筆記

目錄

    • 模型量化

模型量化

1、模型量化優點

  • 低精度模型表示模型權重數值格式為FP16(半精度浮點)或者INT8(8位定點整數),但是目前低精度往往就指代INT8。
  • 常規精度模型則一般表示模型權重數值格式為FP32(32位浮點,單精度)。
  • 混合精度則在模型中同時使用FP32和FP16的權重數值格式。FP16減少了一半的內存大小,但有些參數或操作符必須采用FP32格式才能保持準確度。

2、模型量化方案

  • data free:不適用校準集,直接將浮點數轉化成量化數。高通的DFQ不使用校準集也得到了很高的精度。
  • calibration:基于校準集方案,通過輸入少量真實數據進行統計分析。
  • finetune:基于訓練微調的方案,將量化誤差在訓練時仿真建模,調整權重使其更適合量化。好處是能帶來更大的精度提升,缺點是要修改模型訓練代碼,開發周期較長。

在這里插入圖片描述
FP32轉Int8量化參考這篇博客:
Int8量化介紹

3、PTQ
訓練后量化(Post Training Quantizationi),也叫做離線量化,根據量化零點 x z e r o _ p o i n t x_{zero\_point} xzero_point?是否為0,訓練后量化分為對稱量化和非對稱量化;根據數據通道順序NHWC這一維度區分,訓練后量化分為逐層量化和逐通道量化。目前TensorRT使用逐層量化的方法,每一層采用同一個閾值進行量化。逐通道量化對每一層每個通道都有各自的閾值,對精度可以有一個很好的提升。

4、QAT
在線量化,即在模型訓練時加入偽量化節點,用于模擬模型量化時引起的誤差。偽量化節點就是模仿quantization-dequantization的過程。
在這里插入圖片描述
論文中一般在activation后和conv weight之前加入偽量化節點。

4、量化的分類

  • 二值化
  • 線性量化:采用均勻分布的聚類中心,原始浮點數據和量化后的定點數據存在一個簡單的線性變換關系,因為卷積、全連接等網絡層本身只是簡單的線性計算,因此線性量化中可以直接用量化后的數據直接計算。
  • 對數量化:一種比較特殊的量化方法。兩個同底的冪指數進行相乘,那么等價于其指數相加,降低了計算強度。同時加法也被轉變為索引計算。

5、對稱量化和非對稱量化
根據偏移量Z是否為0,可以將浮點數的線性量化分為兩類:對稱量化和非對稱量化。

在這里插入圖片描述
對稱量化的浮點值和 8 位定點值的映射關系如下圖,從圖中可以看出,對稱量化就是將一個tensor中的[-max(|x|), max(|x|)]內的FP32值分別映射到8bit數據的[-128, 127]的范圍內,中間值按照線性關系進行映射,稱這種映射關系是對稱量化。可以看出,對稱量化的浮點值和量化值范圍都是相對于0對稱。
在這里插入圖片描述
非對稱量化就是偏移量不為0,此時INT8的值域為[0, 255]。

權重量化浮點值可以分為兩個步驟:
1、通過在權重張量中找到min和max值從而確定 x s c a l e x_{scale} xscale? x z e r o p o i n t x_{zero_point} xzerop?oint?
2、將權重張量的每個值從FP32轉換為INT8。
在這里插入圖片描述

6、量化方法的改進
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/12859.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12859.shtml
英文地址,請注明出處:http://en.pswp.cn/web/12859.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

求數組最大值

#include <bits/stdc.h> using namespace std; int main(){int a[4]{1,2,3,4};cout<<*max_element(a,a4);return 0; }

策略模式詳解

策略模式 1 概述 先看下面的圖片&#xff0c;我們去旅游選擇出行模式有很多種&#xff0c;可以騎自行車、可以坐汽車、可以坐火車、可以坐飛機。 作為一個程序猿&#xff0c;開發需要選擇一款開發工具&#xff0c;當然可以進行代碼開發的工具有很多&#xff0c;可以選擇Idea進…

JavaScript的跳轉傳參方式

在JavaScript中&#xff0c;頁面跳轉并傳遞參數通常可以通過幾種不同的方式來實現。下面是一些常見的方法&#xff1a; 1.URL參數&#xff08;Query String&#xff09; 這是最常見的方式&#xff0c;通過在URL的末尾添加參數來實現。例如&#xff1a; javascriptwindow.loc…

gitlab webhook觸發jenkins任務

配置jenkins 安裝gitlab插件 配置jenkins job 選擇gitlab webhook觸發 在高級中生成token 代碼倉設置 新增webhook 配置webhook 測試連接 缺點&#xff0c;不能帶gitLab事件的參數&#xff01;&#xff01;&#xff01;

Spark RDD案例:統計網站每月訪問量

這個項目利用Spark技術&#xff0c;通過統計網站訪問記錄中的日期信息&#xff0c;實現了對每月訪問量的統計和排序。通過分析數據&#xff0c;我們可以了解到不同月份的網站訪問情況&#xff0c;為進一步優化網站內容和推廣策略提供數據支持。 使用Spark統計網站每月訪問量 …

Apache2.4和PHP8的量子糾纏

Apache不建議你用&#xff0c;PHP建議使用

一種基于電場連續性的高壓MOSFET緊湊模型,用于精確表征電容特性

來源&#xff1a;A Compact Model of High-Voltage MOSFET Based on Electric Field Continuity for Accurate Characterization of Capacitance&#xff08;TED 24年&#xff09; 摘要 本文提出了一種新的高壓MOSFET&#xff08;HV MOS&#xff09;緊湊模型&#xff0c;以消…

P5732 楊輝三角

題目描述 給出 &#x1d45b;(&#x1d45b;≤20)n(n≤20)&#xff0c;輸出楊輝三角的前 &#x1d45b;n 行。 如果你不知道什么是楊輝三角&#xff0c;可以觀察樣例找找規律。 輸入格式 無 輸出格式 無 輸入輸出樣例 輸入 #1復制 6 輸出 #1復制 1 1 1 1 2 1 1 3 3 …

408學習筆記-數據結構-2-線性表

線性表 1、邏輯結構 1、數據結構只有一種邏輯結構&#xff0c;而可以有兩種存儲結構&#xff0c;有多種抽象運算。 2、線性表是一種邏輯結構&#xff0c;屬于總線性結構——線性結構的一種&#xff0c;同屬于線性結構的邏輯結構還有&#xff1a;棧、隊列和數組。 3、線性表定…

【經典文獻】水下光學和聲學成像:融合的時代?最新技術概述

文獻名稱&#xff1a;《Underwater Optical and Acoustic Imaging: A Time for Fusion? A Brief Overview of the State-of-the-Art》作者列表&#xff1a;Fausto Ferreira, Diogo Machado, Gabriele Ferri, Samantha Dugelay and John Potter作者單位&#xff1a;北約科學技術…

【hana】hana1.0多容器常用命令

基礎命令 數據庫 連接數據庫 hdbsql -u system -p {passwd} -i 02 -d {dbname}查詢所有數據庫 SELECT DATABASE_NAME, ACTIVE_STATUS FROM M_DATABASES;停止數據庫&#xff0c;會修改數據庫狀態為No ALTER SYSTEM STOP DATABASE testdb; 啟動數據庫&#xff0c;會修改數據…

多線程的代碼案例

目錄 單例模式 餓漢模式 懶漢模式 阻塞隊列 生產者消費者模型意義: 阻塞隊列使用方法 實現阻塞隊列 阻塞隊列實現生產者消費者模型 定時器 實現簡單的定時器 工廠模式 線程池 為啥呢? 從池子里面取 比 創建線程 效率更高 線程池的創建 怎么填坑 ThreadPoolExec…

多年后,再探算法和數據結構

多年來&#xff0c;通過深入學習和實踐各種編程語言&#xff0c;我對數據結構和算法在程序設計中的中心地位有了新的認識。本次從匯編語言到高級編程語言的探討&#xff0c;展示了無論技術如何進步&#xff0c;構成程序的核心—算法和數據結構—始終保持其基礎和不變的角色。 …

圖解堆排序【一眼看穿邏輯思路】

P. S.&#xff1a;以下代碼均在VS2019環境下測試&#xff0c;不代表所有編譯器均可通過。 P. S.&#xff1a;測試代碼均未展示頭文件stdio.h的聲明&#xff0c;使用時請自行添加。 目錄 1、堆的概念2、實現堆排序前的準備工作3、堆排序的思路3.1 第一步3.2 第二步 4、結語 1、…

音視頻捕捉技術:LCC382 SDI采集卡深度解析

在日新月異的多媒體時代&#xff0c;高質量的音視頻采集已成為眾多領域不可或缺的一環。為此&#xff0c;靈卡科技精心打造了LCC382 —— 一款集高效性、靈活性與前沿技術于一身的SDI輸入與環出、HDMI輸出音視頻采集卡&#xff0c;旨在滿足從專業直播、視頻會議到醫療影像、安防…

網頁版Figma漢化

最近學習Figma&#xff0c;簡單介紹一下網頁版Figma的漢化方法 1.打開網址&#xff1a;Figma軟件漢化-Figma中文版下載-Figma中文社區 2.下載漢化插件離線包 解壓漢化包 3.點開谷歌的管理擴展程序 4.點擊加載已解壓的擴展程序&#xff0c;選擇剛剛解壓的包 這樣就安裝好了漢化…

QT狀態機2-含終止狀態的嵌套狀態機

#include "MainWindow.h" #include "ui_MainWindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)

前饋神經網絡FNN、多層感知機MLP和反向傳播推導

目錄 一、前饋神經網絡FNN 激活函數的使用 二、多層感知機MLP MLP的典型結構 多層感知機MLP的特點 和前饋神經網絡FNN的區別 三、傳播推導 1、前向傳播(Forward propagation) &#xff08;1&#xff09;輸入層到隱藏層 &#xff08;2&#xff09;隱藏層到輸出層 2、…

Java面試八股之WeakHashMap的工作原理

簡述WeakHashMap的工作原理 弱鍵&#xff08;Weak Keys&#xff09;&#xff1a; WeakHashMap 的鍵&#xff08;keys&#xff09;是通過 WeakReference 弱引用進行封裝的。弱引用是一種特殊的引用類型&#xff0c;它不會阻止所引用的對象被垃圾收集器回收。這意味著&#xff…