chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

Google提出間接卷積算法,未來可會(huì)有突破?

WpOh_rgznai100 ? 來源:YXQ ? 2019-07-15 16:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文介紹的內(nèi)容主要聚焦Google 的一項(xiàng)最新工作:改變基于 GEMM 實(shí)現(xiàn)的 CNN底層算法提出的新方法。通用矩陣乘法(General Matrix Multiply, GEMM)是廣泛用于線性代數(shù)、機(jī)器學(xué)習(xí)、統(tǒng)計(jì)學(xué)等各個(gè)領(lǐng)域的常見底層算法,其實(shí)現(xiàn)了基本的矩陣與矩陣相乘的功能,因此算法效率直接決定了所有上層模型性能,目前主流的卷積算法都是基于GEMM來實(shí)現(xiàn)的。來自谷歌的Peter Vajda在ECV2019中提出了一種全新的間接卷積算法,用于改進(jìn)GEMM在實(shí)現(xiàn)卷積操作時(shí)存在的一些缺點(diǎn),進(jìn)而提升計(jì)算效率。

通用矩陣乘法

GEMM是基礎(chǔ)線性代數(shù)子程序庫(kù)(Basic Linear Algebra Subprograms, BLAS)中的一個(gè)函數(shù)。BLAS提供了實(shí)現(xiàn)矩陣和向量基本運(yùn)算的函數(shù),最早于1979年由C.L.LAWSON提出。BLAS的發(fā)展大致可以分為三個(gè)階段(levels)的歷程,這和函數(shù)定義,出版順序,以及算法中多項(xiàng)式的階數(shù)以及復(fù)雜性有關(guān),第一階段只包含與向量(vector)有關(guān)的運(yùn)算,第二階段添加了向量與矩陣進(jìn)行運(yùn)算的操作,第三階段添加了矩陣與矩陣之間的運(yùn)算,前兩個(gè)階段的BLAS都是用于向量處理器的,而第三階段適用于矩陣處理器,所以BLAS的發(fā)展和硬件的發(fā)展密不可分。GEMM屬于第三階段的算法,正式公布于1990年,其迭代更新形式為:

其中A和B可以進(jìn)行轉(zhuǎn)置或hermitian共軛轉(zhuǎn)置,而A、B和C都可以被忽略(be strided),因此實(shí)際上這個(gè)公式就表示了任意矩陣之間所有可能的加法和乘法組合,例如最基本的A*B,可以將α置1,C置為全0矩陣即可,這也是其通用性的表現(xiàn)。

由于矩陣乘法相對(duì)于向量-向量乘法以及向量-矩陣乘法,有更低的時(shí)間復(fù)雜度,效率更高,因此其廣泛用于許多科學(xué)任務(wù)中,與之相關(guān)的GEMM算法成為了目前BLAS設(shè)計(jì)者的主要優(yōu)化對(duì)象。例如可以將A和B分解為分塊矩陣,使得GEMM可以遞歸實(shí)現(xiàn)。有關(guān)GEMM的詳細(xì)信息可以參見[1][2][3]。如何對(duì)GEMM進(jìn)行優(yōu)化,是BLAS相關(guān)工作的研究熱點(diǎn)。

基于 GEMM 的卷積算法及其缺點(diǎn)

卷積神經(jīng)網(wǎng)絡(luò)(CNN)在CV問題中的表現(xiàn)很出色,有多種在算法層面對(duì)齊進(jìn)行實(shí)現(xiàn)的方法:直接卷積算法,采用7層循環(huán),快速卷積算法,利用傅里葉變換來進(jìn)行卷積,以及基于GEMM的卷積算法。

通過將卷積操作用矩陣乘法來代替,進(jìn)而使用GEMM算法來間接進(jìn)行卷積操作,這使得卷積操作可以在任何包含GEMM的平臺(tái)上進(jìn)行,并且受益于矩陣乘法的高效性,任何針對(duì)GEMM的改進(jìn)和研究都能有助于卷積運(yùn)算效率的提升,從而提高模型的運(yùn)算速度,因此目前大部分主流的神經(jīng)網(wǎng)絡(luò)框架,例如Tensorflow、Pytorch和Caffe都使用基于GEMM的方法來在底層代碼中實(shí)現(xiàn)卷積。

具體的,基于GEMM的卷積方法需要借助于 im2col或im2row buffer來內(nèi)存轉(zhuǎn)換,使得數(shù)據(jù)格式滿足GEMM算法的輸入要求,從而將卷積操作轉(zhuǎn)化為GEMM操作,然而這個(gè)轉(zhuǎn)換過程是一個(gè)計(jì)算開銷和內(nèi)存開銷都比較大的過程,特別是在輸入channel數(shù)較小時(shí),這個(gè)過程會(huì)在整個(gè)卷積過程中占有很大的比例。簡(jiǎn)言之,就是在卷積過程中,每個(gè)pixel都會(huì)被多次重復(fù)的轉(zhuǎn)換,這是不必要的計(jì)算開銷。因此有許多工作都在對(duì)這一過程進(jìn)行改進(jìn),本文工作提出了一種改進(jìn)算法——間接卷積算法(Indirect Convolution algorithm),主要有以下兩個(gè)優(yōu)點(diǎn):

1、去掉了im2row的轉(zhuǎn)換過程,這使得算法性能有了巨大的提升(up to 62%)。

2、用了一個(gè)更小的indirection buffer來代替原來的im2row buffer。不同于im2row buffer的大小隨著輸入channel數(shù)線性增加,indirection buffer沒有這個(gè)特性,因此indirection buffer的內(nèi)存占用特性非常有利于輸入channel數(shù)較多時(shí)的卷積操作。

間接卷積算法

原始的GEMM通過如下計(jì)算來不斷迭代進(jìn)行矩陣運(yùn)算操作并輸出矩陣:

其中A是輸入張量,B是一個(gè)常量濾波器,C是輸出矩陣,在傳統(tǒng)的im2col+GEMM算法中,通常α=1而β=0,原始GEMM操作示意圖如下:

圖1 原始GEMM操作

其中 im2col buffer 代表矩陣A,filter tensor 代表矩陣B,A和B的乘積就是輸出copy表示將輸入的張量展開為一個(gè)二維矩陣,也就是im2col buffer??梢钥吹絙uffer的每一行則是由固定個(gè)數(shù)(步長(zhǎng))的pixel展開成一維的向量組成的,這些pixel都在原始tensor中的一個(gè)patch內(nèi),在經(jīng)過和filter tensor相乘后,由于矩陣行列相乘得到一個(gè)元素,因此這幾個(gè)pixel的信息都被整合成了一個(gè)值,也就是對(duì)他們進(jìn)行了卷積操作。最后在輸出矩陣C中,行數(shù)rows代表輸出的像素點(diǎn)個(gè)數(shù),columns代表輸出的channel數(shù)??梢钥吹絙uffer的columns是和輸入channel數(shù)有關(guān)的。

為了降低buffer帶來的開銷,作者提出了一種間接矩陣乘法的思想,不把輸入的tensor直接展開并存儲(chǔ)在buffer中,而只是在buffer中存放每個(gè)pixel在input tensor的坐標(biāo),也就是從存數(shù)據(jù)變成了存地址(類似于指針pointer思想),這樣不管channel數(shù)有多少,存的地址信息始終只有二維,極大的降低了buffer的計(jì)算和存儲(chǔ)開銷,如下圖:

圖2 indirect convolution

當(dāng)然,由于buffer中存的是地址信息,因此不能直接和filter做矩陣乘法,所以就只能通過在buffer的行間進(jìn)行循環(huán),根據(jù)該行的pointer找到對(duì)應(yīng)的輸入數(shù)據(jù),再將輸入數(shù)據(jù)與kernel相乘,并與之前循環(huán)的結(jié)果拼接起來,從而間接的實(shí)現(xiàn)矩陣乘法,因此叫做indirection buffer。

對(duì)于不同的卷積步長(zhǎng),只需要將不同步長(zhǎng)對(duì)應(yīng)的卷積patch位置確定即可。而對(duì)于padding策略,將指向填充位置的pointer對(duì)應(yīng)的輸入pixel的向量值全部設(shè)置為0。

間接卷積算法的缺點(diǎn)

間接卷積算法作為GEMM-BASED CNN算法的一種改進(jìn),能極大的提升計(jì)算效率,但是存在以下幾個(gè)限制:

1. 這個(gè)算法是為NHWC layout設(shè)計(jì)的,也就是說應(yīng)用范圍比較窄,不能和目前的主流方法相比。

2. 算法適用于前向傳播中的卷積操作,而在反向傳播中作用不大,不及基于col2im和row2im的算法。

3. 具有和GEMM相同的缺點(diǎn),在深度小卷積核的卷積操作中效率并不好。

實(shí)驗(yàn)測(cè)試結(jié)果

Efficient Deep Learning for Computer Vision主要聚焦于如何將深度學(xué)習(xí)部署到移動(dòng)設(shè)備上,因此本文的工作主要在移動(dòng)設(shè)備和移動(dòng)芯片上進(jìn)行測(cè)試,結(jié)果如下:

可以看到一旦步長(zhǎng)增加,那么Indirect convolution帶來的性能提升就會(huì)明顯下降,這是因?yàn)椴介L(zhǎng)越大,在原始的GEMM算法中重復(fù)計(jì)算的量就會(huì)減小,因此原始GEMM的性能本身就會(huì)提升,而indirect convolution并不受益于步長(zhǎng)增加。

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

    關(guān)注

    5

    文章

    1789

    瀏覽量

    59045
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4710

    瀏覽量

    95398

原文標(biāo)題:基于GEMM實(shí)現(xiàn)的CNN底層算法被改?Google提出全新間接卷積算法

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于FPGA的SSD目標(biāo)檢測(cè)算法設(shè)計(jì)

    。有名的LeNet-5手寫數(shù)字識(shí)別網(wǎng)絡(luò),精度達(dá)到99%,AlexNet模型和VGG-16模型的提出突破了傳統(tǒng)圖像識(shí)別算法,GooLeNet和ResNet推動(dòng)了卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用。
    的頭像 發(fā)表于 07-10 11:12 ?854次閱讀
    基于FPGA的SSD目標(biāo)檢測(cè)<b class='flag-5'>算法</b>設(shè)計(jì)

    Google Fast Pair服務(wù)簡(jiǎn)介

    Google Fast Pair 是一項(xiàng)利用低功耗藍(lán)牙(Bluetooth LE)技術(shù),實(shí)現(xiàn)設(shè)備間快速安全配對(duì)及提供多種服務(wù)的協(xié)議。其主要功能包括: 設(shè)備處于配對(duì)模式時(shí),顯示半頁(yè)通知,便于用戶進(jìn)行
    發(fā)表于 06-29 19:28

    如何使用MATLAB實(shí)現(xiàn)一維時(shí)間卷積網(wǎng)絡(luò)

    本文對(duì)一維卷積操作進(jìn)行介紹,包括一維擴(kuò)展卷積和一維因果卷積,以及 MATLAB 對(duì)一維卷積的支持情況。在最后通過一個(gè)實(shí)例演示如何在 MATLAB 中將一維
    的頭像 發(fā)表于 03-07 09:15 ?1082次閱讀
    如何使用MATLAB實(shí)現(xiàn)一維時(shí)間<b class='flag-5'>卷積</b>網(wǎng)絡(luò)

    如何開發(fā)一款Google Find My Tag?

    My 網(wǎng)絡(luò)的配件(如 AirTag)。通過結(jié)合 GPS、藍(lán)牙和眾包網(wǎng)絡(luò),F(xiàn)ind My 提供了高精度的定位功能,同時(shí)保護(hù)用戶隱私 Google Find My網(wǎng)絡(luò)同樣也是由數(shù)億臺(tái)運(yùn)行較新版本
    發(fā)表于 03-05 17:39

    FPGA+AI王炸組合如何重塑未來世界:看看DeepSeek東方神秘力量如何預(yù)測(cè)......

    突破40%;數(shù)據(jù)中心加速卡市場(chǎng)復(fù)合增長(zhǎng)率達(dá)34%...... 2. 萬億級(jí)市場(chǎng)的四大賽道1) 智能駕駛新基建:?jiǎn)屋vL4自動(dòng)駕駛車搭載12-16片F(xiàn)PGA;動(dòng)態(tài)可重構(gòu)技術(shù)實(shí)現(xiàn)毫秒級(jí)算法切換
    發(fā)表于 03-03 11:21

    Google Play如何幫助您的應(yīng)用變現(xiàn)

    本文內(nèi)容來自于活動(dòng)演講內(nèi)容的整理和總結(jié),演講人分別為: Google Play 資深產(chǎn)品經(jīng)理 Kalpa Raj 和 Google Play 商業(yè)拓展經(jīng)理 Maya Ma ? 在 Google
    的頭像 發(fā)表于 01-21 11:21 ?700次閱讀
    <b class='flag-5'>Google</b> Play如何幫助您的應(yīng)用變現(xiàn)

    卷積神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)工具與框架

    : TensorFlow是由Google Brain團(tuán)隊(duì)開發(fā)的開源機(jī)器學(xué)習(xí)框架,它支持多種深度學(xué)習(xí)模型的構(gòu)建和訓(xùn)練,包括卷積神經(jīng)網(wǎng)絡(luò)。TensorFlow以其靈活性和可擴(kuò)展性而聞名,適用于研究和生產(chǎn)環(huán)境。 特點(diǎn): 靈活性: TensorFlow提供了豐富的API,允許用戶
    的頭像 發(fā)表于 11-15 15:20 ?671次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)調(diào)整方法

    卷積神經(jīng)網(wǎng)絡(luò)因其在處理具有空間層次結(jié)構(gòu)的數(shù)據(jù)時(shí)的卓越性能而受到青睞。然而,CNN的成功很大程度上依賴于其參數(shù)的合理設(shè)置。參數(shù)調(diào)整是一個(gè)復(fù)雜的過程,涉及到多個(gè)超參數(shù)的選擇和優(yōu)化。 網(wǎng)絡(luò)架構(gòu)參數(shù) 卷積
    的頭像 發(fā)表于 11-15 15:10 ?1209次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的基本原理與算法

    ),是深度學(xué)習(xí)的代表算法之一。 一、基本原理 卷積運(yùn)算 卷積運(yùn)算是卷積神經(jīng)網(wǎng)絡(luò)的核心,用于提取圖像中的局部特征。 定義卷積核:
    的頭像 發(fā)表于 11-15 14:47 ?1784次閱讀

    傅里葉變換與卷積定理的關(guān)系

    傅里葉變換與卷積定理之間存在著密切的關(guān)系,這種關(guān)系在信號(hào)處理、圖像處理等領(lǐng)域中具有重要的應(yīng)用價(jià)值。 一、傅里葉變換與卷積的基本概念 傅里葉變換 : 是一種將時(shí)間域(或空間域)信號(hào)轉(zhuǎn)換為頻率域信號(hào)
    的頭像 發(fā)表于 11-14 09:33 ?1918次閱讀

    一種基于因果路徑的層次圖卷積注意力網(wǎng)絡(luò)

    機(jī)電系統(tǒng)中數(shù)據(jù)驅(qū)動(dòng)故障檢測(cè)模型的性能和可解釋性。引入了一種混合因果發(fā)現(xiàn)算法來發(fā)現(xiàn)監(jiān)測(cè)變量之間的繼承因果關(guān)系。順序連接因果變量的因果路徑用作接收?qǐng)觯褂枚喑叨?b class='flag-5'>卷積來提取特征。基于分層注意力機(jī)制來聚合
    的頭像 發(fā)表于 11-12 09:52 ?1071次閱讀
    一種基于因果路徑的層次圖<b class='flag-5'>卷積</b>注意力網(wǎng)絡(luò)

    關(guān)于卷積神經(jīng)網(wǎng)絡(luò),這些概念你厘清了么~

    隨著人工智能(AI)技術(shù)的快速發(fā)展,AI可以越來越多地支持以前無法實(shí)現(xiàn)或者難以實(shí)現(xiàn)的應(yīng)用。本文基于此解釋了 卷積神經(jīng)網(wǎng)絡(luò) (CNN)及其對(duì)人工智能和機(jī)器學(xué)習(xí)的意義。CNN是一種能夠從復(fù)雜數(shù)據(jù)中提
    發(fā)表于 10-24 13:56

    Google AI技術(shù)助力中國(guó)品牌出海增長(zhǎng)

    人工智能的技術(shù)創(chuàng)新與突破正在給各行各業(yè)帶來全新的變革與機(jī)遇。在數(shù)字營(yíng)銷領(lǐng)域,AI 也為整個(gè)營(yíng)銷流程開啟了全新的可能。從全新的沉浸式廣告體驗(yàn)到效果出色的廣告素材,Google AI 正在助力廣告創(chuàng)意
    的頭像 發(fā)表于 10-16 11:08 ?893次閱讀

    高斯濾波的卷積核怎么確定

    高斯濾波的卷積核確定主要依賴于高斯函數(shù)的特性以及圖像處理的具體需求。以下是確定高斯濾波卷積核的幾個(gè)關(guān)鍵步驟: 一、確定卷積核的大小 卷積核形狀 :高斯濾波的
    的頭像 發(fā)表于 09-29 09:29 ?1686次閱讀

    深度識(shí)別算法包括哪些內(nèi)容

    深度識(shí)別算法是深度學(xué)習(xí)領(lǐng)域的一個(gè)重要組成部分,它利用深度神經(jīng)網(wǎng)絡(luò)模型對(duì)輸入數(shù)據(jù)進(jìn)行高層次的理解和識(shí)別。深度識(shí)別算法涵蓋了多個(gè)方面的內(nèi)容,主要包括以下幾種類型: 1. 卷積神經(jīng)網(wǎng)絡(luò)(CNN) 概述
    的頭像 發(fā)表于 09-10 15:28 ?843次閱讀