通俗易懂理解G-GhostNet輕量級神經網絡模型

一、參考資料

原始論文:[1]

IJCV22 | 已開源 | 華為GhostNet再升級,全系列硬件上最優極簡AI網絡

二、G-GhostNet相關介紹

G-GhostNet 又稱為 GhostNetV1 的升級版,是針對GPU優化的輕量級神經網絡。

1. 摘要

GhostNetV1 作為近年來最流行的輕量級神經網絡架構,其在ARM和CPU端的應用已經非常廣泛。而在GPU和NPU這種并行計算設備上,GhostNetV1 并沒有體現出優勢。最近,華為諾亞的研究者針對GPU等設備的特點,巧妙引入跨層的廉價操作,減少計算量的同時減少的內存數據搬運,基于此設計了GPU版GhostNet。實驗表明,G-GhostNet 在現有GPU設備上達到了速度和精度的最佳平衡。在華為自研NPU昇騰310上,G-GhostNet 的速度比同量級 ResNet 要快30%以上。該論文已被計算機視覺頂級期刊IJCV收錄。

2. 引言

關于GhostNetV1網絡模型的詳細介紹,請參考另一篇博客:通俗易懂理解GhostNetV1輕量級神經網絡模型

基于卷積神經網絡的推理模型在以計算機視覺為基礎的各個終端任務如圖像識別、目標檢測、實力分割等場景中都有廣泛的應用。傳統的基礎神經網絡往往由于規模較大的參數量與計算量,導致各項終端任務無法實時工作。現有的輕量級推理網絡(MobileNet, EfficientNet, ShuffleNet)都是針對CPU、ARM等移動設備設計而成,一般以深度可分離卷積為基礎,這些網絡相比于基于普通卷積的神經網絡(ResNet, Inception)具有更少的計算量。但是在GPU等基于大吞吐量設計的處理單元上的表現卻不盡人意,推理速度甚至比傳統的卷積神經網絡更慢。隨著硬件基礎的提升,云服務器、手機等端側設備也配備了大量的GPU模塊,設計出更適合GPU的推理模型具有重大的學術和商業價值。

在這里插入圖片描述

回顧一下 GhostNetV1 的架構,GhostNetV1Ghost Module搭建而成,Ghost Module 采用普通卷積生成少量特征圖,而更多特征圖則使用廉價操作(如DWConv)來生成。這樣,Ghost Module使用更少計算量更廉價的方式生成了和普通卷積層一樣多的特征圖。而 DWConv 等廉價操作對于流水線型CPU、ARM等移動設備更友好,對于并行計算能力強的GPU則不太友好。

相同stage之間,不同層的輸出特征具有較高的相似性,不同stage之間,特征的相似性較低。因此我們提出一種在同一個stage內進行跨層廉價線性變換,生成Ghost特征的基礎網絡結構 G-GhostNet

G-GhostNet 重點關注在GPU設備上能快速推理的卷積神經網絡,設計出用更少計算量和參數量達到更高推理速度和更高測試精度的模型,讓網絡生成與關鍵特征相似性高的特征。

3. G-Ghost stage

在這里插入圖片描述

圖(a) 是普通卷積神經網絡(例如ResNet)的stage,記作Vanilla CNN stage,由n層卷積層 { L 1 , L 2 , ? , L n } \{L_{1},L_{2},\cdots,L_{n}\} {L1?,L2?,?,Ln?} 堆疊而成。給定輸入特征圖 X X X,則第一個block和最后一個block的輸出特征圖可以表示為:
Y 1 = L 1 ( X ) , Y n = L n ( L n ? 1 ( ? L 2 ( Y 1 ) ) ) , \begin{aligned}Y_1&=L_1(X),\\Y_n&=L_n(L_{n-1}(\cdots L_2(Y_1))),\end{aligned} Y1?Yn??=L1?(X),=Ln?(Ln?1?(?L2?(Y1?))),?
ResNet-34 為例,第2個stage的第一個block和最后一個block的輸出特征圖,如下圖所示。

在這里插入圖片描述

圖(b) 是 G-Ghost 的stage,記作G-Ghost stage,其由主干分支和Ghost分支組成。給定輸入特征圖 X ∈ R c × h × w X\in\mathbb{R}^{c\times h\times w} XRc×h×w,主干分支的最后一個block的輸出特征圖記作 Y n c ∈ R ( 1 ? λ ) c × h × w Y_{n}^{c}\in\mathbb{R}^{(1-\lambda)c\times h\times w} Ync?R(1?λ)c×h×w,Ghost分支輸出的的Ghost特征圖記作 Y n g ∈ R λ c × h × w Y_{n}^{g}\in\mathbb{R}^{\lambda c\times h\times w} Yng?Rλc×h×w,其中 0 ≤ λ ≤ 1 0\leq\lambda\leq1 0λ1,表示Ghost特征圖的比例。

Y n c Y_{n}^{c} Ync? 可以表示為:
Y n c = L n ′ ( L n ? 1 ′ ( ? L 2 ′ ( Y 1 ) ) ) , Y_{n}^{c}=L'_{n}(L'_{n-1}(\cdots L'_{2}(Y_{1}))), Ync?=Ln?(Ln?1?(?L2?(Y1?))),

其中, L 2 ′ , ? , L n ′ L_2^{\prime},\cdots,L_n^{\prime} L2?,?,Ln? 是以 ( 1 ? λ ) × w i d t h (1-\lambda)\times\mathrm{width} (1?λ)×width倍率進行壓縮的block。

Y n g Y_n^g Yng? 與第一個block的輸出特征圖 Y 1 Y_1 Y1?類似,可以通過廉價的線性變換 C C C得到,表達公式如下:
Y n g = C ( Y 1 ) , Y_n^g=C(Y_1), Yng?=C(Y1?),
其中, C C C 表示廉價的線性變換,linear kernels尺寸可以為 1 × 1 1 \times 1 1×1 或者 5 × 5 5 \times 5 5×5 等。

最后,拼接(concat) Y n c Y_{n}^{c} Ync? Y n g Y_n^g Yng?,得到G-Ghost stage最終的輸出:
Y n = [ Y n c , Y n g ] . Y_n=[Y_n^c,Y_n^g]. Yn?=[Ync?,Yng?].
圖?是在G-Ghost stage 基礎上增加mix操作的stage,記作 G-Ghost?stage?w/?mix \text{G-Ghost stage w/ mix} G-Ghost?stage?w/?mix,mix操作用于增強中間層信息。 G-Ghost?stage?w/?mix \text{G-Ghost stage w/ mix} G-Ghost?stage?w/?mix利用多個廉價線性變換生成多個Ghost特征圖,其原理與G-Ghost stage類似,不再贅述。

4. G-GhostNet

G-GhostNet 由多個G-Ghost stage 堆疊而成,具體網絡結構如下表所示。

在這里插入圖片描述

解釋說明

  • Block,表示傳統的殘差模塊;
  • output,表示輸出特征圖的尺寸;
  • #out,表示輸出特征圖的channels。

5. 總結

G-GhostNet 提出的跨層廉價線性變換,可用于不同網絡結構中,進一步優化模型運行所需的內存,提升GPU等設備上的運行速度。至此,GhostNet系列網絡模型已經打通ARM、CPU、GPU甚至NPU的常用設備,能夠在不同硬件需求下達到最佳的速度和精度的平衡。

三、參考文獻

[1] Han K, Wang Y, Xu C, et al. GhostNets on heterogeneous devices via cheap operations[J]. International Journal of Computer Vision, 2022, 130(4): 1050-1069.

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

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

相關文章

Leetcode 611.有效三角形的個數

題目 給定一個包含非負整數的數組 nums &#xff0c;返回其中可以組成三角形三條邊的三元組個數。 示例 1: 輸入: nums [2,2,3,4] 輸出: 3 解釋:有效的組合是: 2,3,4 (使用第一個 2) 2,3,4 (使用第二個 2) 2,2,3示例 2: 輸入: nums [4,2,3,4] 輸出: 4提示: 1 < nums…

Android的LiveData

LiveData 是一種可觀察的數據存儲器類。與常規的可觀察類不同&#xff0c;LiveData 具有生命周期感知能力&#xff0c;意指它遵循其他應用組件&#xff08;如 activity、fragment 或 service&#xff09;的生命周期。這種感知能力可確保 LiveData 僅更新處于活躍生命周期狀態的…

ChatGPT在醫學領域的應用與前景

標題&#xff1a; ChatGPT在醫學領域的應用與前景 正文&#xff1a; 隨著人工智能技術的不斷進步&#xff0c;ChatGPT等語言模型在醫學領域的應用逐漸深入&#xff0c;展現出其巨大的潛力和廣闊的發展前景。作為一個高級的自然語言處理工具&#xff0c;ChatGPT能夠理解和生成…

WPF 開發調試比較:Visual Studio 原生和Snoop調試控制臺

文章目錄 前言運行環境簡單的WPF代碼實現一個簡單的ListBoxVisual Studio自帶代碼調試熱重置功能測試實時可視化樹查找窗口元素顯示屬性 Snoop調試使用Snoop簡單使用調試控制臺元素追蹤結構樹Visual/可視化結構樹Logical/本地代碼可視化樹AutoMation/自動識別結構樹 WPF元素控制…

基于springboot+vue的房屋租賃管理系統(前后端分離)

博主主頁&#xff1a;貓頭鷹源碼 博主簡介&#xff1a;Java領域優質創作者、CSDN博客專家、阿里云專家博主、公司架構師、全網粉絲5萬、專注Java技術領域和畢業設計項目實戰&#xff0c;歡迎高校老師\講師\同行交流合作 ?主要內容&#xff1a;畢業設計(Javaweb項目|小程序|Pyt…

【OpenAI官方課程】第四課:ChatGPT文本推斷Summarizing

歡迎來到ChatGPT 開發人員提示工程課程&#xff08;ChatGPT Prompt Engineering for Developers&#xff09;&#xff01;本課程將教您如何通過OpenAI API有效地利用大型語言模型&#xff08;LLM&#xff09;來創建強大的應用程序。 本課程由OpenAI 的Isa Fulford和 DeepLearn…

手拉手Vite+Vue3+TinyVue+Echarts+TailwindCSS

技術棧springboot3hutool-alloshi-coreVue3viteTinyVueEchartsTailwindCSS軟件版本IDEAIntelliJ IDEA 2022.2.1JDK17Spring Boot3.1hutool-all5.8.18oshi-core6.4.1Vue35.0.10vite5.0.10axios1.6.7echarts5.4.3 ECharts是一個使用 JavaScript 實現的開源可視化庫&#xff0c;可…

快速搭建ARM64實驗平臺(QEMU虛擬機+Debian)

文章目錄 前言一、實驗平臺介紹二、安裝步驟2.1 安裝工具2.2 下載倉庫2.3 編譯內核并制作根文件系統2.4 運行剛才編譯好的ARM64版本的Debian系統2.5 在線安裝軟件包2.6 在QEMU虛擬機和主機之間共享文件 三、單步調試ARM64 Linux內核參考資料 前言 最近翻閱笨叔的《奔跑吧Linux…

go-zero微服務入門教程

go-zero微服務入門教程 本教程主要模擬實現用戶注冊和用戶信息查詢兩個接口。 準備工作 安裝基礎環境 安裝etcd&#xff0c; mysql&#xff0c;redis&#xff0c;建議采用docker安裝。 MySQL安裝好之后&#xff0c;新建數據庫dsms_admin&#xff0c;并新建表sys_user&#…

【Git】 刪除遠程分支

Git 刪除遠程分支有以下幾種方法 服務端UI工具 Git 的服務端圖形化工具主要是 web 端。常用的有 GitHub、Gitea、Gutlab 等。 這些工具都提供了分支管理&#xff0c;可以直接在各服務端找到相關功能&#xff0c;謹慎刪除。 客戶端UI工具 Git 擁有諸多客戶端 UI 工具&#x…

詳細分析Python中的unittest測試框架

目錄 1. 基本知識2. API2.1 斷言2.2 setUp() 和 tearDown() 3. Demo 1. 基本知識 unittest 是 Python 標準庫中的一個單元測試框架&#xff0c;用于編寫和執行測試用例以驗證代碼的正確性 提供了一種結構化的方法來編寫測試&#xff0c;使得測試代碼更加模塊化和易于維護 以…

【ACW 服務端】頁面操作Java增刪改查代碼生成

版本: 1.2.2-JDK17-SNAPSHOT 項目地址&#xff1a;wu-smart-acw 演示地址&#xff1a;演示地址 admin/admin Java增刪改查代碼生成 找到對應菜單 選擇你需要的數據實例 選擇數據庫 選擇數據庫表 選擇客戶端&#xff08;如果是本地ACW服務代碼啟動默認注冊上的客戶端ID是…

騰訊云主機Ubuntu22.04安裝Odoo17

一、安裝PostgreSQL16 參見之前的文章 Ubuntu22.04安裝PostgreSQL-CSDN博客 二、安裝Odoo17 本方案使用的nightly版的odoo&#xff0c;安裝的都是最新版odoo wget -O - https://nightly.odoo.com/odoo.key | apt-key add - echo "deb http://nightly.odoo.com/17.0/n…

Maven【1】(命令行操作)

文章目錄 一丶創建maven工程二、理解pom.xml三、maven的構建命令1.編譯操作2.清理操作3.測試操作4.打包操作5.安裝操作 一丶創建maven工程 首先創建這樣一個目錄&#xff0c;然后從命令行里進入這個目錄&#xff1a; 然后接下來就在這個命令行里進行操作了。 這個命令是&…

Python學習筆記——PySide6設計GUI應用之UI與邏輯分離

1、打開PySide6的UI設計工具pyside6-designer&#xff0c;設計一個主窗口&#xff0c;保存文件名為testwindow.ui 2、使用PySide6的RCC工具把testwindow.ui文件轉換為testwindow_rc.py文件&#xff0c;此文件中有一個類Ui_MainWindow&#xff08;包含各種控件對象&#xff09;…

設計模式淺析(八) ·外觀模式

設計模式淺析(八) 外觀模式 日常叨逼叨 java設計模式淺析&#xff0c;如果覺得對你有幫助&#xff0c;記得一鍵三連&#xff0c;謝謝各位觀眾老爺&#x1f601;&#x1f601; 外觀模式 概念 外觀模式&#xff08;Facade Pattern&#xff09;是一種設計模式&#xff0c;它為…

深度學習發展里程碑事件2006-2024

2006-2024年&#xff0c;深度學習發展經歷眾多的里程碑事件&#xff0c;一次次地刺激著人們的神經&#xff0c;帶來巨大的興奮。電影還在繼續&#xff0c;好戲在后面&#xff0c;期待…… 2006年 深度信念網絡&#xff08;DBNs&#xff09;&#xff1a;Geoffrey Hinton與他的學…

備戰藍橋杯 Day10(背包dp)

01背包問題 1267&#xff1a;【例9.11】01背包問題 【題目描述】 一個旅行者有一個最多能裝 M&#xfffd; 公斤的背包&#xff0c;現在有 n&#xfffd; 件物品&#xff0c;它們的重量分別是W1&#xff0c;W2&#xff0c;...,Wn&#xfffd;1&#xff0c;&#xfffd;2&#…

藍橋杯刷題--python-10(2023填空題3)

0工作時長 - 藍橋云課 (lanqiao.cn) import datetime time_str_list=[] while(True):tmp=input()if not tmp: breaktime_str_list.append(tmp)# time_list=[datetime.datetime.strptime(t,"%Y-%m-%d %H:%M:%S")for t in time_str_list] time_list.sort() sum=0 for i…

【代碼隨想錄算法訓練營Day25】● 216.組合總和III ● 17.電話號碼的字母組合

文章目錄 Day 25 第七章 回溯算法part02216.組合總和III自己的思路&#xff08;?通過&#xff09; 17.電話號碼的字母組合思路代碼 Day 25 第七章 回溯算法part02 今日內容&#xff1a; ● 216.組合總和III● 17.電話號碼的字母組合 216.組合總和III 如果把 組合問題理解了…