(筆記)通過知識蒸餾和量化進行模型壓縮MODEL COMPRESSION VIA DISTILLATION AND QUANTIZATION
(筆記)Model Compression via Distillation and Quantization
原文連結:
程式碼:
摘要
主要介紹了兩種演算法。
1)加入知識蒸餾loss的量化訓練。
2)訓練量化集p。
演算法一:加入知識蒸餾loss的量化訓練
有一個浮點模型w,一個量化模型w^q,用量化模型計算前向loss(加上知識蒸餾的loss),對w^q計算梯度,用以更新浮點模型。每次前向計算之前用更新的浮點模型更新量化模型。
演算法二:訓練量化集p
此方法適合非線性量化。量化函式的輸入為浮點模型引數w和量化集合p。訓練在於優化量化集合p。
由量化函式、浮點模型w和量化集合p可得量化模型w^q,量化模型做前向傳播,對w^q求梯度,根據等式(6)求loss對p的梯度,更新p。
效果
最後用量化ResNet-18去學ResNet-34效果不好,於是採用更寬的ResNet-18,結果引數比ResNet-34多一倍多,bucket-size也用到了256個。
相關推薦
(筆記)通過知識蒸餾和量化進行模型壓縮MODEL COMPRESSION VIA DISTILLATION AND QUANTIZATION
(筆記)Model Compression via Distillation and Quantization 原文連結: 程式碼: 摘要 主要介紹了兩種演算法。 1)加入知識蒸餾loss的量化訓練。 2)訓練量化集p。
人工智慧中小樣本問題相關的系列模型演變及學習筆記(四):知識蒸餾、增量學習
【說在前面】本人部落格新手一枚,象牙塔的老白,職業場的小白。以下內容僅為個人見解,歡迎批評指正,不喜勿噴![握手][握手] 【再囉嗦一下】本文銜接上兩個隨筆:人工智慧中小樣本問題相關的系列模型演變及學習筆記(一):元學習、小樣本學習 【再囉嗦一下】本文銜接上兩個隨筆:人工智慧中小樣本問題相關的系列模型演變及學
C++過載(2):通過成員函式和友元函式過載
分別通過成員函式和友元函式完成過載 #include <iostream> using namespace std; class Complex { public: Complex(double real =0,double imag=0):real(real),imag(i
TX Text Control文書處理教程(6)通過程式碼編輯和格式化文字
在許多應用系統中通過程式碼來編輯文字是一個必不可少的功能,例如:將多個小檔案與資料庫資料合併生成報表、電子購物時需要建立訂單並作為HTML檔案進行傳送。使用Text Control,這些操作可以使用滑鼠操作或者編碼的方式很容易的實現。 本章節相應的原始碼可以在TX Tex
EJB3.0入門經典(筆記)-EJB知識與執行環境
(一)Enterprice JavaBeans (EJB) 是一個用於分散式業務應用的標準伺服器端元件模型。EJB定義了3種企業Bean,分別是會話Bean (Session Bean)、實體Bean (Entity Bean) 和訊息驅動Bean (Message Driv
iphone開發之表格元件UITableView的使用(三)通過載入plist檔案字典轉模型方式展示分組資料
1、通過載入plist檔案,利用在懶載入中把字典轉模型實現的步驟如下: (1)新建plist檔案,編輯plist檔案內容新增屬性。編輯步驟如下: 在檔案中新建一個NSArray用來包含所有的資料,點選大的NSArray資料的三角符號向下,新建元素字典作為NSArray的每一項內容,為第一個陣列元素即字典新增屬
3D Game Programming withDX11 學習筆記(一) 數學知識總結
表示 圖形 http 根據 轉置 元素 material -s com 在圖形學中,數學是不可或缺的一部分,所以本書最開始的部分就是數學知識的復習。在圖形學中,最常用的是矢量和矩陣,所以我根據前面三個章節的數學知識,總結一下數學知識。 一、矢量 數學中的矢量,擁有
最大熵學習筆記(一)預備知識
color wrap targe dsm entropy plus 文件 eight 相關鏈接 生活中我們常常聽到人們說“不要把雞蛋放到一個籃子裏”。這樣能夠減少風險。深究一下,這是為什麽呢?事實上,這裏邊包括了所謂的最大熵原理(The Maxim
javascript學習筆記(五):異常捕獲和事件處理
log 類型 按鈕 輸入 button lan yellow logs 代碼 異常捕獲 Try{ 發生異常的代碼塊 }catch(err){ 異常信息處理 } 1 <!DOCTYPE html> 2 <html> 3 <head
Android基礎筆記(十三)- 內容提供者原理和簡單使用
暴露 tel java 四大組件 per 存儲 建數據庫 開發 fun 為什麽要有內容提供者 內容提供者的工作原理 使用內容解析者對內容提供者進行增刪改查操作 利用內容提供者和內容解析者備份手機短信 利用內容提供者插入短信 為什麽要有內容
SpringMVC筆記(六)SpringMVC的轉發和重定向
配置文件 turn 返回 請求 字符串類型 情況 spring 讓我 ota 一、轉發和重定向 一般情況下,控制器方法返回字符串類型的值會被當成邏輯視圖名處理 如果返回的字符串中帶 forward: 或 redirect: 前綴 時,SpringMVC 會對他們進行特殊處理
JSP學習筆記(一):JSP語法和指令
沒有 文件的 encoding 引入 2.0 .cn name blog .get 一、語法 1、腳本程序的語法格式: 腳本程序可以包含任意量的Java語句、變量、方法或表達式,只要它們在腳本語言中是有效的。 <% 代碼片段 %> 2、中文編碼問題
python學習筆記(五)數值類型和類型轉換
學習 系統 oat cal 關於 trac hide sed lin Python中的數值類型有: 整型,如2,520 浮點型,如3.14159,1.5e10 布爾類型 True和False e記法: e記法即對應數學中的科學記數法 1 >>
用CocosCreator和Pomelo編寫多人在線實時聊天室(一)----基礎知識和環境安裝
shu 以及 pan 信息 ast pre alt web 技術 客戶端:Cocos Creator 1.6.2服務器端:Pomelo 2.2.5源碼地址:https://github.com/foupwang/CocosCreatorChatForPomelo.git 本
Nodejs學習筆記(六)----- 模塊系統和函數
參數 spa 而且 split response 另一個 簡約 也有 方法 Node.js模塊系統------->有開發基礎很好理解 為了讓Node.js的文件可以相互調用,Node.js提供了一個簡單的模塊系統。 模塊是Node.js 應用程序的基本組成部分,文件和
Python筆記·第十二章—— 函數 (四) 叠代器和生成器
序列類型 rst yield style 捕捉 必須 title bre 生成 一 叠代器 一 叠代的概念 #叠代器即叠代的工具,那什麽是叠代呢?#叠代是一個重復的過程,每次重復即一次叠代,並且每次叠代的結果都是下一次叠代的初始值 while True: #只是單純地重
算法學習筆記(六) 二叉樹和圖遍歷—深搜 DFS 與廣搜 BFS
創建 mark preorder 第一個 高度 變量初始化 term link 文章 圖的深搜與廣搜 復習下二叉樹、圖的深搜與廣搜。從圖的遍歷說起。圖的遍歷方法有兩種:深度優先遍歷(Depth First Search),
設計模式學習筆記(二)--簡單工廠模式和工廠模式
bsp bubuko rac oid nds gen body () pri 老生長談的兩個設計模式了,這裏把這兩個設計模式對比著來總結一下。 什麽是簡單工廠模式? 簡單工廠模式:根據傳入工廠類的參數動態決定要創建哪一個產品類的實例。 UML圖如下(以實現一個計算器為例):
web基礎知識梳理(筆記)
信息 空間 超文本 登錄訪問 trac xslt web基礎 request blog http(1.1)知識點 http協議概念 http協議是用於客戶端和服務器端之間的超文本傳輸協議,通過請求和響應實現通信,是一種無狀態協議(即對請求和響應不會做持久化處理)。 http
Python+Selenium筆記(九):操作警告和彈出框
smi top web cell 錯誤 ext script ava mozilla #之前發的 driver.switch_to_alert() 這句雖然可以運行通過,但是會彈出警告信息(這種寫法3.x不建議使用) 改成 driver.switch_to.alert就不