AlexNet網路的結構詳解與實現
最新
04-29
一:AlexNet網路結構
在2012年ImageNet圖像分類任務競賽中AlexNet一鳴驚人,對128萬張1000個分類的預測結果大大超過其他演算法模型準確率,打敗其它非DNN網路一鳴驚人。AlexNet包括5個卷積層與三個全連接層,與今天動則十幾層、幾十層甚至成百上千層相比,簡直是太簡單、太容易理解啦。AlexNet網路一共有八層。前面5層是卷積層,後面3層是全連接層,整個網路結構顯示如下:
各個層結構如下:
輸入圖像大小為224x244x3 的彩色RGB圖像
CONV表示卷積層
LRN 表示局部響應歸一化
POOL表示池化層
FC表示全連接層
ReLU表示激活函數
Dropout表示參與訓練神經元百分比,針對全連接層。
卷積層與池化層步長與填充方式:
採用ReLU激活函數,基於CIFAR-10數據集,訓練收斂速度相比tanh激活函數提升6倍。圖示如下:
作者在2GPU上進行訓練,所以paper中對上述完整的網路結構進行了差分,分別在2個GTX580 GPU上運行,基於ILSVRC-2000與ILSVRC-2012數據集進行了測試。很多文章中不加說明的將作者Paper中網路結構貼到文章中以後看文章了解AlexNet的讀者都一頭霧水,因為文章內容描述跟網路結構根本對不上,因此誤導了不少人。
二:AlexNet網路實現
基於tensorflow,很容易實現一個AlexNet網路,本人把它定義成一個單獨的Python類,方便大家創建使用它,完整的AlexNet網路代碼實現如下
運行之後結構顯示:
卷積層輸出與論文上完全一致。
TAG:OpenCV學堂 |