日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

矩阵一维卷积c++_深度神经网络卷积层计算加速与优化

發布時間:2025/3/19 c/c++ 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 矩阵一维卷积c++_深度神经网络卷积层计算加速与优化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

01 傳統卷積層計算

首先我們定義符號F()函數為卷積函數

一維卷積:F(n,m)

n代表輸出的維度,m代表濾波器的維度

二維卷積:F(n*m,r*s)

n*m代表輸出的維度,r*s代表濾波器的維度

下面我們具體談談針對二維的卷積加速

傳統的卷積層加速:

對于最簡單的F(n*m,r*s)

最傳統暴力的卷積運算:

時間成本:1. 乘法:(n*m*r*s)2. 加法:(n*m*(r – 1)*(s – 1))空間成本:1. 輸入層:(n+r-1)*(m + s - 1)2. 卷積核:(r*s)

02 Imcol+GEMM

為了更好的理解,首先給出這幅圖:

推廣到三維,也就是Image:C*H*W

最后一頁沒畫,但是基本上就是Filter Matrix乘以Feature Matrix的轉置,得到輸出矩陣Cout x (H x W),就可以解釋為輸出的三維Blob(Cout x H x W)。

相對于傳統的暴力的卷積算法而言,此算法將卷積變成了矩陣乘法,為加速提供了便捷條件,能很容易用硬件實現加速。但是內存有冗余。

03 Imcol+MEC初級版

由于是3x3卷積核,且步長為1。因此,循環取出A、B、C、D、E這5個子矩陣,每個矩陣的維度都是: 輸入高度x3

將A、B、C、D、E按照行優先展開并拼成一個大的中間矩陣L, L的維度則為:5x21。從L中循環取出P、Q、R、S、T這5個子矩陣,并計算5次矩陣乘法,就得到了最終的結果。從上面的示例中我們不難看出,MEC的解決思路在于將im2col這一過程分成了Height和Width兩部分,于是需要存儲的中間矩陣也大大減小了。可能帶來的問題就是,原來的一次矩陣乘法,現在會變成多次小矩陣乘法。雖然有利于并行計算,但也失去了BLAS庫計算大矩陣乘法的優勢。

F( n*m,r*s)原本內存:( n+r – 1) *( m+s – 1)Imcol+GEMM轉換需要內存大小:r * s * n * mImcol+MEC初版需要內存大小:m * ( r * ( n + s – 1 ) )

04 Imcol+MEC高級版

考慮了batchsize和channel

05 Winograd方法

說完了這些方法,我們來說說Winograd方法吧,加速卷積的不二之選。本文重在于利用Winograd方法加速卷積,順便選取內存和速度兼顧的方案

公式的推導,這里選用F( 3 *3,2*2)

用多項式的中國剩余定理推導可知:

在其中,我用的是F( 4 * 4 , 3 * 3 )

輸入的tensor:[N,W,H,C]

卷積核的tensor:[C_out,kernal_W,kernel_H,C_in]

圖中K = C_out、T = N

Kernals中的眾矩陣通過從[C_out,3,3,C] -> [C_out,6,6,C]

是一個變形后的卷積核,kernal1 = [1,6,6,128],上圖中有128個卷積核,因為輸出的Tensor:[N,W,H,128],拋開上面具體的實例,為了推導后續公式,這里我們只研究

對于輸入矩陣16X16、卷積核 3X3,采用 F( 4 X 4,3X3 ) 的加速方案:

明確輸出矩陣14 X 14 首先將卷積核通過GgG(T)變成 6X6的矩陣D

現在的問題變成了如何將點乘的集合變成更簡易可表達的形式。再看下面這幅圖:

故我們得到的最后的結果是:

所以最后我們統計一下所作的乘法:

傳統:3 X 3 X 128 X 14 X 14 = 225792Winograd:6 X 6 X 128 X 16 = 73728浮點數運算倍數:225792 / 73728 = 3.0625

改進:如若有剩余,考慮用其他矩陣相乘方法

轉自OpenCV學堂 獨家授權頭條轉載

總結

以上是生活随笔為你收集整理的矩阵一维卷积c++_深度神经网络卷积层计算加速与优化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。