先盜一圖,摘自ImageNet Classification with Deep Convolutional Neural Networks(Hinton)
由作者的原文可知,AlexNet模型在訓(xùn)練時(shí)使用了兩個(gè)GPU,所以就出現(xiàn)了一些參數(shù)為兩個(gè)GPU共享,一些參數(shù)是GPU獨(dú)享。在建立此訓(xùn)練模型前,先分析各層的參數(shù)關(guān)系。
AlexNet模型共有5個(gè)卷積層,3個(gè)全連接層,前兩個(gè)卷積層和第五個(gè)卷積層有pool池化層,其他兩個(gè)卷積層沒有池化。
第一卷積層:
由AlexNet架構(gòu)圖,第一卷積層的卷積核有96個(gè)(兩個(gè)GPU各用48個(gè)),卷積核的尺度為11*11*3(3為RGB通道數(shù)),步長stride為4。生成的卷積特征圖單元數(shù)為55*55*48*2,每個(gè)特征圖尺度為55*55,由此可知輸入圖像尺度為227*227(55(單向尺度)*4(步長) + (11(卷積核尺度)-4(步長)) = 227)。因此輸入圖像單元數(shù)為227*227*3*1。
第一池化層:
輸入單個(gè)特征圖尺度為55*55,池化尺度3*3,步長為2,輸出池化特征圖尺度為27*27((55(單向尺度)-3(池化尺度))/2(步長)+1 = 27)。特征圖單元數(shù)為27*27*48*2.
第二卷積層:
由AlexNet架構(gòu)圖,卷積核有256個(gè)(兩個(gè)GPU各128個(gè),同時(shí)各作用于各GPU內(nèi)的第一池化層的輸出),卷積核尺度5*5*3,步長為1,生成卷積特征圖單元數(shù)為27*27*128*2,每個(gè)特征圖尺度為27*27,由此計(jì)算輸入特征圖尺度為31*31(27(單向尺度)*1(步長)+(5(卷積核尺度)-1(步長))= 31)。因此輸入特征圖單元數(shù)為31*31*96。
第二池化層:
輸入單個(gè)特征圖尺度為27*27,池化尺度3*3,步長為2,輸出池化特征圖尺度為13*13((27(單向尺度)-3(池化尺度))/2(步長)+ 1 = 13)。特征圖單元數(shù)為13*13*128*2.
第三卷積層:
由AlexNet架構(gòu)圖,卷積核有384個(gè)(兩個(gè)GPU各192個(gè),同時(shí)需要共享各自GPU第二池化層的輸出),卷積核尺度為3*3*3,步長為1,生成卷積特征圖單元數(shù)為13*13*192*2,每個(gè)特征圖尺度為13*13,由此計(jì)算輸入特征圖尺度為15*15(13(單向尺度)*1(步長)+(3(卷積核尺度)-1(步長))=15)。因此輸入特征圖單元數(shù)為15*15*256。
第四卷積層:
由AlexNet架構(gòu)圖,卷積核有384個(gè)(兩個(gè)GPU各192個(gè),同時(shí)不共享各自GPU內(nèi)的第三卷積層輸出),卷積核尺度為3*3*3,步長為1,生成卷積特征圖單元數(shù)為13*13*192*2,每個(gè)特征圖尺度為13*13,由此計(jì)算輸入特征圖尺度為15*15(13(單向尺度)*1(步長)+(3(卷積核尺度)-1(步長))=15)。因此輸入特征圖單元數(shù)為15*15*384。
第五卷積層:
由AlexNet架構(gòu)圖,卷積核有256個(gè)(兩個(gè)GPU各128個(gè),同時(shí)不共享各自GPU內(nèi)的第四卷積層輸出),卷積核尺度為3*3*3,步長為1,生成卷積特征圖單元數(shù)為13*13*128*2,每個(gè)特征圖尺度為13*13,由此計(jì)算輸入特征圖尺度為15*15(13(單向尺度)*1(步長)+(3(卷積核尺度)-1(步長))=15)。因此輸入特征圖單元數(shù)為15*15*384。
第五池化層:
輸入單個(gè)特征圖尺度13*13,池化尺度3*3,步長為2,輸出池化特征圖尺度為6*6((13(單向尺度)-3(池化尺度))/2(步長)+1 = 6)。特征圖單元數(shù)為6*6*256.
第一全連接層:
輸入特征圖單元數(shù)為6*6*256,輸出特征圖單元數(shù)為4096,全連接參數(shù)個(gè)數(shù)為6*6*256*4096.
第二全連接層:
輸入特征圖單元數(shù)4096,輸出特征圖單元數(shù)為4096,全連接參數(shù)個(gè)數(shù)為4096*4096.
第三全連接層:
即輸出層,輸入特征圖單元數(shù)為4096,輸出特征圖單元數(shù)為1000,全連接參數(shù)個(gè)數(shù)為4096*1000.