深度學習-回顧經典AlexNet網絡之山高我為峰
深度學習中,經典網絡引領一波又一波的技術革命,從LetNet到當前最火的GPT所用的Transformer,它們把AI技術不斷推向高潮。2012年AlexNet大放異彩,它把深度學習技術引領第一個高峰,打開人們的視野。
用pytorch構建CNN經典網絡模型AlexNet,還可以用數據進行訓練模型,得到一個優化的模型。
數據分析
數據分析-Pandas如何轉換產生新列
數據分析-Pandas如何統計數據概況
數據分析-Pandas如何輕松處理時間序列數據
數據分析-Pandas如何選擇數據子集
數據分析-Pandas如何重塑數據表-CSDN博客
經典算法
經典算法-遺傳算法的python實現
經典算法-模擬退火算法的python實現
經典算法-粒子群算法的python實現-CSDN博客
AlexNet概述
第一個典型的CNN是LeNet5網絡,而第一個引領技術潮流的CNN卻是AlexNet。2012年在全球知名的圖像識別競賽 ILSVRC 中,AlexNet 橫空出世,直接將錯誤率降低了近 10 個百分點。這是斷崖式的領先。當時AlexNet的影響,和現在chatGPT帶來的效應相當。
網絡結構
輸入圖像分辨率:227x227x3 通道
結構:
9層:1個輸入層,5個卷積層,2個全連接層,1個輸出層,因GPU內存不夠,分為上下兩組;
(1)C1:11x11 —>輸出2組48個55×55大小的特征圖–> ReLU --> LRN --> MaxPooling;
(2)C2:5x5 —>輸出2組128個27×27大小的特征圖–> ReLU --> LRN --> MaxPooling;
(3)C3:3x3 —>輸出384個13×13大小的特征圖–> ReLU;
(4)C4:3x3 —>輸出2組192個13×13大小的特征圖–> ReLU;
(5)C5:3x3 —>輸出2組128個13×13大小的特征圖–> ReLU --> MaxPooling;
(6)FC6 ----> 6x6,輸入2組6x6x128特征圖,輸出4096個1x1全連接層–> ReLU --> Dropout;
(7)FC7 ----> 輸入4096個神經元,輸出4096個神經元–> ReLU --> Dropout
(8)輸出層—> 輸入4096個神經元–>softmax -->輸出 1000分類
整個AlexNet網絡包含的神經元個數為:
290400 + 186624 + 64896 + 64896 + 43264 + 4096 + 4096 + 1000 = 659272
大約65萬個神經元。
整個AlexNet網絡包含的參數數量為:
34944 + 307456 + 885120 + 663936 + 442624 + 37752832 + 16781312 + 4096000 = 60964224
大約6千萬個參數。
優勢與不足
優勢:采用激活函數ReLU,局部響應歸一化,使用Dropout機制,Max Pooling重疊池化,雙GPU訓練,圖像尺寸擴大227x227x3。
Pytorch實現
以下便是使用Pytorch實現的經典網絡結構AlexNet
# AlexNet 227x227x3
class AlexNet(nn.Module):def __init__(self, channels, num_classes):super(AlexNet, self).__init__()self.features = nn.Sequential(# 輸入通道數為3,彩色圖片# 輸出96、卷積核為11x11,步長為4,是AlexNet模型結構決定nn.Conv2d(channels, 96, kernel_size=11,stride=4, padding=2),nn.ReLU(),nn.MaxPool2d(kernel_size=3,stride=2),nn.Conv2d(96, 256,kernel_size=5, padding=2),nn.ReLU(),nn.MaxPool2d(kernel_size=3,stride=2),nn.Conv2d(256, 384, kernel_size=3, padding=1),nn.ReLU(),nn.Conv2d(384, 384, kernel_size=3,padding=1),nn.ReLU(),nn.Conv2d(384, 256, kernel_size=3,padding=1),nn.ReLU(),nn.MaxPool2d(kernel_size=3, stride=2))# 全連接層self.classifier = nn.Sequential(# 全連接的第一層,輸入卷積輸出的拉平值,即6*6*256# 輸出為4096nn.Linear(in_features=6*6*256,out_features=4096),nn.ReLU(),# AlexNet采取了DropOut進行正則,防止過擬合nn.Dropout(p=0.5),nn.Linear(4096,4096),nn.ReLU(),nn.Dropout(p=0.5),# 最后一層,輸出1000個類別,也是我們所說的softmax層nn.Linear(4096,num_classes))# 前向算法def forward(self,x):x = self.features(x)x = torch.flatten(x,1)result = self.classifier(x)return result
大家可以和LetNet5對照差異,也可以一窺DeepLearning技術的突破點。
在AlexNet開創一片天地后,CNN網絡引領的深度學習蓬勃發展,造就人工智能技術革命的起點。
覺得有用 收藏 收藏 收藏
點個贊 點個贊 點個贊
End
GPT專欄文章:
GPT實戰系列-ChatGLM3本地部署CUDA11+1080Ti+顯卡24G實戰方案
GPT實戰系列-LangChain + ChatGLM3構建天氣查詢助手
大模型查詢工具助手之股票免費查詢接口
GPT實戰系列-簡單聊聊LangChain
GPT實戰系列-大模型為我所用之借用ChatGLM3構建查詢助手
GPT實戰系列-P-Tuning本地化訓練ChatGLM2等LLM模型,到底做了什么?(二)
GPT實戰系列-P-Tuning本地化訓練ChatGLM2等LLM模型,到底做了什么?(一)
GPT實戰系列-ChatGLM2模型的微調訓練參數解讀
GPT實戰系列-如何用自己數據微調ChatGLM2模型訓練
GPT實戰系列-ChatGLM2部署Ubuntu+Cuda11+顯存24G實戰方案
GPT實戰系列-Baichuan2本地化部署實戰方案
GPT實戰系列-Baichuan2等大模型的計算精度與量化
GPT實戰系列-GPT訓練的Pretraining,SFT,Reward Modeling,RLHF
GPT實戰系列-探究GPT等大模型的文本生成-CSDN博客