很多人容易混淆2d卷積和3d卷積的概念,把多通道的2d卷積當成3d卷積,本文展示了一種直觀理解2d卷積和3d卷積的方式。
首先了解什麼是卷積核,卷積核(filter)是由一組引數構成的張量,卷積核相當於權值,影象相當於輸入量,卷積的操作就是根據卷積核對這些輸入量進行加權求和。我們通常用卷積來提取影象的特徵。
直觀理解如下:下圖使用的是 3x3卷積核(height x width,簡寫h×w
h \times w
h×w) 的卷積,padding為1(周圍的虛線部分,卷積時為了使卷積後的影象大小與原來一致,會對原影象進行填充),兩個維度上的strides均為1(滑動步長,這裡體現為每次滑動幾個小方格)。
上圖是通道數為1的2維影象的卷積操作,靜態表示為:
了解了單通道影象的卷積之後,再來看多通道影象的卷積,我們知道灰度影象只有乙個通道,而 rgb 影象有r、g、b三個通道。
多通道影象的一次卷積要對所有通道上同一位置的元素做加權和,因此卷積核的shape變成了 h×w
×cha
nnel
sh\times w\times channels
h×w×ch
anne
ls,沒有錯卷積核變成了3維,但這不是3維卷積,因為我們區分幾維卷積看的是卷積核可以在幾個維度上的滑動,卷積核是不能在cha
nnel
schannels
channe
ls上滑動的,因為上面提到每次卷積都要關聯所有通道上同一位置上的元素。
3通道的卷積表示如下:
上圖將3個通道分開表示,卷積核也分開表示,filter1、filter2、filter3均為二維卷積核,堆疊在一起便形成了h×w
×3h\times w \times 3
h×w×
3的卷積核,同樣的我們將3個通道也堆疊在一起,於是形成了下面的3維表示圖:
用類似的方法我們先分析單通道影象的3d卷積,3d卷積的物件是三維影象,因此卷積核變成了dep
th×h
eigh
t×wi
dthdepth\times height\times width
depth×
heig
ht×w
idth
簡寫為d×h
×wd\times h\times w
d×h×
w。單通道的3d卷積動態圖如下:
將上述靜態表示成:
多通道的3d卷積核shape為d×h
×w×c
hann
elsd\times h\times w\times channels
d×h×w×
chan
nels
,我們還是首先將各通道分開畫:
然後將filter1、filter2、filter3堆疊在一起形成乙個4維卷積核d×h
×w×3
d \times h\times w \times 3
d×h×w×
3,同理將各通道堆疊在一起就形成了多通道的3d卷積輸入影象。
2D轉換 3D轉換
轉換是使元素改變形狀 尺寸和位置的一種效果。能夠對元素進行移動 縮放 轉動 拉長或拉伸。2d轉換 瀏覽器相容 1 internet explorer 10 firefox 以及 opera 支援 transform 屬性。2 chrome 和 safari 需要字首 webkit 3 interne...
2d遊戲引擎 8年,從2D到3D,我的學習之路
mickey 寫了一篇 乙個本科畢業生創業兩年的感悟 從他的視角,總結了我們合作的兩年經歷。我也來寫一篇,介紹我的學習之路,希望對大家有所幫助,謝謝大家 1.直接從0開始做專案,邊做邊學習,在做的過程中不斷思考和反思當前的設計和實現,不斷地修正,不斷地迭代。2.做完乙個專案後,沉澱和昇華 a 根據做...
8年,從2D到3D,我的學習之路
mickey 寫了一篇 乙個本科畢業生創業兩年的感悟 從他的視角,總結了我們合作的兩年經歷。我也來寫一篇,介紹我的學習之路,希望對大家有所幫助,謝謝大家 1.直接從0開始做專案,邊做邊學習,在做的過程中不斷思考和反思當前的設計和實現,不斷地修正,不斷地迭代。2.做完乙個專案後,沉澱和昇華 a 根據做...