卷积神经网络VGG16权重数量的计算和理解(转载)
VGG16網(wǎng)絡(luò)結(jié)構(gòu)是:
_________________________________________________________________
Layer?(type)?????????????????Output?Shape??????????????Param?#???
=================================================================
input_1?(InputLayer)?????????(None,?150,?150,?3)???????0?????????
_________________________________________________________________
block1_conv1?(Conv2D)????????(None,?150,?150,?64)??????1792??????
_________________________________________________________________
block1_conv2?(Conv2D)????????(None,?150,?150,?64)??????36928?????
_________________________________________________________________
block1_pool?(MaxPooling2D)???(None,?75,?75,?64)????????0?????????
_________________________________________________________________
block2_conv1?(Conv2D)????????(None,?75,?75,?128)???????73856?????
_________________________________________________________________
block2_conv2?(Conv2D)????????(None,?75,?75,?128)???????147584????
_________________________________________________________________
block2_pool?(MaxPooling2D)???(None,?37,?37,?128)???????0?????????
_________________________________________________________________
block3_conv1?(Conv2D)????????(None,?37,?37,?256)???????295168????
_________________________________________________________________
block3_conv2?(Conv2D)????????(None,?37,?37,?256)???????590080????
_________________________________________________________________
block3_conv3?(Conv2D)????????(None,?37,?37,?256)???????590080????
_________________________________________________________________
block3_pool?(MaxPooling2D)???(None,?18,?18,?256)???????0?????????
_________________________________________________________________
block4_conv1?(Conv2D)????????(None,?18,?18,?512)???????1180160???
_________________________________________________________________
block4_conv2?(Conv2D)????????(None,?18,?18,?512)???????2359808???
_________________________________________________________________
block4_conv3?(Conv2D)????????(None,?18,?18,?512)???????2359808???
_________________________________________________________________
block4_pool?(MaxPooling2D)???(None,?9,?9,?512)?????????0?????????
_________________________________________________________________
block5_conv1?(Conv2D)????????(None,?9,?9,?512)?????????2359808???
_________________________________________________________________
block5_conv2?(Conv2D)????????(None,?9,?9,?512)?????????2359808???
_________________________________________________________________
block5_conv3?(Conv2D)????????(None,?9,?9,?512)?????????2359808???
_________________________________________________________________
block5_pool?(MaxPooling2D)???(None,?4,?4,?512)?????????0?????????
=================================================================
?
下面是轉(zhuǎn)載的內(nèi)容:
先說(shuō)一下我對(duì)神經(jīng)網(wǎng)絡(luò)的理解:神經(jīng)網(wǎng)絡(luò)就是用巨量的簡(jiǎn)單的非線性函數(shù)組合起來(lái)擬合復(fù)雜的未知函數(shù)。比如,人類識(shí)別不同的物體、識(shí)別不同動(dòng)物、不同植物是個(gè)復(fù)雜的未知函數(shù)。雖然未知,但沒(méi)事,我們的神經(jīng)網(wǎng)絡(luò)可以用巨量的簡(jiǎn)單非線性函數(shù)組合來(lái)擬合出來(lái)。而且實(shí)踐證明在很多場(chǎng)景下效果非常好。而如何確定這些巨量的簡(jiǎn)單非線性函數(shù)的大量參數(shù)呢?通過(guò)機(jī)器學(xué)習(xí),機(jī)器訓(xùn)練。
著名的卷積神經(jīng)網(wǎng)絡(luò)VGG16,論文上寫參數(shù)有1.3億個(gè),查了很多文章,很多都是錯(cuò)的,有些對(duì)的,但是沒(méi)有解釋為什么這樣算,意義是啥。
最近發(fā)現(xiàn)難以理解的原因是對(duì)卷積的誤解。網(wǎng)上幾乎所有講卷積網(wǎng)絡(luò)的文章,演示卷積的時(shí)候都是一個(gè)n×n的表。其實(shí)神經(jīng)網(wǎng)絡(luò)里的卷積核是立體的三維卷積核,而卷積過(guò)程也是3維卷積。
雖然vgg輸入是一個(gè)224×224的圖片,但是考慮到圖片的色彩,那么輸入就是一個(gè)224×224×3的3維矩陣。所以卷積核也是三維的才匹配。考慮到每一層有多個(gè)卷積核,那就是再加一維,所以每一層其實(shí)一個(gè)4維矩陣來(lái)運(yùn)算處理輸入的3維矩陣。
下面計(jì)算vgg16的參數(shù):
計(jì)算里:乘法里前面3個(gè)數(shù)字是三維的卷積核的尺寸,乘法項(xiàng)最后一個(gè)數(shù)字是這一層的卷積核數(shù)量,加法項(xiàng)是偏置參數(shù)數(shù)量
第1層:1792 =3*3*3*64+64;
第1層: 1792 =3*3*3*64+64;前面的3*3*3是三維的卷積核,64是這一層的卷積核數(shù)量,最后的是偏置參數(shù)數(shù)量
第2層: 36928? ? =3*3*64*64+64
第3層: 73856? ? =3*3*64*128+128
第4層: 147584? =3*3*128*128+128
第5層: 295168? =3*3*128*256+256
第6層: 590080? =3*3*256*256+256
第7層: 590080? =3*3*256*256+256
第8層: 1180160? =3*3*256*512+512
第9層: 2359808? =3*3*512*512+512
第10層:2359808? =3*3*512*512+512
第11層:2359808? =3*3*512*512+512
第12層:2359808? =3*3*512*512+512
第13層:2359808? =3*3*512*512+512
第14層:102764544=7*7*512*4096+4096
第15層:16781312 =4096*4096+4096
第16層:4097000? =4096*1000+1000
總計(jì):138357544個(gè)
?
總結(jié)
以上是生活随笔為你收集整理的卷积神经网络VGG16权重数量的计算和理解(转载)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 深度学习没有GPU怎么办?
- 下一篇: (22) 基于动态时空图卷积神经网络的交