女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

通用矩陣乘法

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

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

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

基于 GEMM 的卷積算法及其缺點

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

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

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

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

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

間接卷積算法

原始的GEMM通過如下計算來不斷迭代進行矩陣運算操作并輸出矩陣:

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

圖1 原始GEMM操作

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

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

圖2 indirect convolution

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

對于不同的卷積步長,只需要將不同步長對應的卷積patch位置確定即可。而對于padding策略,將指向填充位置的pointer對應的輸入pixel的向量值全部設置為0。

間接卷積算法的缺點

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

1. 這個算法是為NHWC layout設計的,也就是說應用范圍比較窄,不能和目前的主流方法相比。

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

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

實驗測試結果

Efficient Deep Learning for Computer Vision主要聚焦于如何將深度學習部署到移動設備上,因此本文的工作主要在移動設備和移動芯片上進行測試,結果如下:

可以看到一旦步長增加,那么Indirect convolution帶來的性能提升就會明顯下降,這是因為步長越大,在原始的GEMM算法中重復計算的量就會減小,因此原始GEMM的性能本身就會提升,而indirect convolution并不受益于步長增加。

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

    關注

    5

    文章

    1789

    瀏覽量

    58983
  • 算法
    +關注

    關注

    23

    文章

    4709

    瀏覽量

    95334

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

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于FPGA的SSD目標檢測算法設計

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

    Google Fast Pair服務簡介

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

    如何使用MATLAB實現(xiàn)一維時間卷積網絡

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

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

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

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

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

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

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

    卷積神經網絡的實現(xiàn)工具與框架

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

    卷積神經網絡的參數(shù)調整方法

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

    卷積神經網絡的基本原理與算法

    ),是深度學習的代表算法之一。 一、基本原理 卷積運算 卷積運算是卷積神經網絡的核心,用于提取圖像中的局部特征。 定義卷積核:
    的頭像 發(fā)表于 11-15 14:47 ?1772次閱讀

    傅里葉變換與卷積定理的關系

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

    一種基于因果路徑的層次圖卷積注意力網絡

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

    關于卷積神經網絡,這些概念你厘清了么~

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

    Google AI技術助力中國品牌出海增長

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

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

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

    深度識別算法包括哪些內容

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