AlexNet
CNN模型復(fù)現(xiàn)1 AlexNet
1. AlexNet
1.1 要點(diǎn)
1.2 網(wǎng)絡(luò)結(jié)構(gòu)
1.3 代碼
1. AlexNet
1.1 要點(diǎn)
AlexNet加入‘relu’激活函數(shù)、Batchnormalization。 AlexNet有5個卷基層和3個全連接層。
輸入圖片尺寸[224,224,3],第一層用96個尺寸為11x11x3,步長為4的卷機(jī)核提取特征,然后標(biāo)準(zhǔn)化和用池化核為3,步長為2的最大池化進(jìn)行池化。
第二層把96個特征分開訓(xùn)練,用256個5x5x48的卷機(jī)核提取特征,然后標(biāo)準(zhǔn)化和用池化核為3,步長為2的最大池化進(jìn)行池化。
第三層用384個3x3x256的卷機(jī)核提取特征。
第四層用384個3x3x192的卷機(jī)核提取特征。
第五層用256個3x3x192的卷機(jī)核提取特征,然后標(biāo)準(zhǔn)化和用池化核為3,步長為2的最大池化進(jìn)行池化。
然后對特征層展平,進(jìn)行兩次神經(jīng)元為4096的全連接,一次Dropout,最后進(jìn)行一次神經(jīng)元為1000的全連接。
1.2 網(wǎng)絡(luò)結(jié)構(gòu)
224,224,3–>C(96,11*11,4,‘s’,‘relu’,[56, 56, 96])BM(3,2,[27, 27, 96])–>
27,27,96–>C(256,5*5,1,‘s’,‘relu’,[27, 27, 256])BM(3,2,[13, 13, 256])–>
13,13,256–>C(384,3*3,1,s,‘relu’,[13, 13, 384])–>
13,13,384–>C(384,3*3,1,s,‘relu’,[13, 13, 384])–>
13,13,384–>C(256,3*3,1,s,‘relu’,[13, 13, 256])BM(,[6, 6, 256])–>
6,6,256–>F([9216])D(4096,‘relu’,[4096])D(4096,‘relu’,[4096])D(0.5)D(1000,‘safamax’,[1000])–>
1000
1.3 代碼
(1) 代碼流程
導(dǎo)入函數(shù)
設(shè)置tensor
建立第一層
2~5層卷積塊兒
中間的2個全連接層
最后輸出的全連接層
建立model(pip install pydot)
Conv(f=96,k=11,s=4,p='s')
Relu
Batchnorm
MaxPool(k=3,s=2)?
? ?↓
Conv(f=256,k=5,s=1,p='s')
Relu
Batchnorm
MaxPool(k=3,s=2)?
? ?↓
Conv(f=384,k=3,s=1,p='s')
Relu?
? ?↓
Conv(f=384,k=3,s=1,p='s')
Relu?
? ?↓
Conv(f=256,k=3,s=1,p='s')
Relu
Batchnorm
MaxPool(k=3,s=2)?
? ?↓
Flatten
Fc(4096)
Relu?
Fc(4096)
Relu?
Dropout(0.5)
? ?↓
Fc(1000)
SoftMax
(2) python代碼
'''代碼用BatchNormalization代替LRN(Local Response Normalization)'''