日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

什么是卷积神经网络LeNet

發(fā)布時間:2023/12/19 综合教程 40 生活家
生活随笔 收集整理的這篇文章主要介紹了 什么是卷积神经网络LeNet 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這篇文章主要介紹“什么是卷積神經(jīng)網(wǎng)絡(luò)LeNet”,在日常操作中,相信很多人在什么是卷積神經(jīng)網(wǎng)絡(luò)LeNet問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”什么是卷積神經(jīng)網(wǎng)絡(luò)LeNet”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

目錄
  • LeNet

  • 模型訓(xùn)練

在本節(jié)中,我們將介紹LeNet,它是最早發(fā)布的卷積神經(jīng)網(wǎng)絡(luò)之一。這個模型是由AT&T貝爾實驗室的研究院Yann LeCun在1989年提出的(并以其命名),目的是識別手寫數(shù)字。當(dāng)時,LeNet取得了與支持向量機性能相媲美的成果,成為監(jiān)督學(xué)習(xí)的主流方法。LeNet被廣泛用于自動取款機中,幫助識別處理支票的數(shù)字。

LeNet

總體來看,LeNet(LeNet-5)由兩個部分組成:

  • 卷積編碼器: 由兩個卷積層組成

  • 全連接層密集快: 由三個全連接層組成

每個卷積塊中的基本單元是一個卷積層、一個sigmoid激活函數(shù)和平均池化層。這里,雖然ReLU和最大池化層更有效,但它們在20世紀(jì)90年代還沒有出現(xiàn)。每個卷積層使用 5 × 5 5\times5 5×5卷積核和一個sigmoid激活函數(shù)。這些層將輸入映射到多個二維特征輸出,通常同時增加通道的數(shù)量。第一卷積層有6個輸出通道,而第二個卷積層有16個輸出通道。每個 2 × 2 2\times2 2×2池操作通過空間下采樣將維數(shù)減少4倍。

為了將卷積塊中的輸出傳遞給稠密塊,我們必須在小批量中戰(zhàn)平每個樣本。LeNet的稠密快有三個全連接層,分別有120、84和10個輸出。因為我們?nèi)栽趫?zhí)行分類,所以輸出層的10維對應(yīng)于最后輸出結(jié)果的數(shù)量。

通過下面的LeNet代碼,我們會相信深度學(xué)習(xí)框架實現(xiàn)此類模型非常簡單。我們只需要實例化一個Sequential塊并將需要的層連接在一起。

importtorch
fromtorchimportnn
fromd2limporttorchasd2l

classReshape(torch.nn.Module):
	defforward(self,x):
		returnx.view(-1,1,28,28)

net=torch.nn.Sequential(
	Reshape(),
	nn.Conv2d(1,6,kernel_size=5,padding=2),nn.Sigmoid(),
	nn.AvgPool2d(kernel_size=2,stride=2),
	nn.Conv2d(6,16,kernel_size=5),nn.Sigmoid(),
	nn.AvgPool2d(kernel_size=2,stride=2),
	nn.Flatten(),
	nn.Linear(16*5*5,120),nn.Sigmoid(),
	nn.Linear(120,84),nn.Sigmoid(),
	nn.Linear(84,10)
)

我們對原始模型做了一點小改動,去掉了最后一層的高斯激活。除此之外,這個網(wǎng)絡(luò)與最初的LeNet-5一致。下面,我們將一個大小為 28 × 28 28\times28 28×28的單通道(黑白)圖像通過LeNet。通過在每一層打印輸出的形狀,我們可以檢查模型,以確保其操作與我們期望的下圖一致。

X=torch.rand(size=(1,1,28,28),dtype=torch.float32)
forlayerinnet:
	X=layer(X)
	print(layer.__class__.__name__,'outputshape:\t',X.shape)
Reshapeoutputshape:torch.Size([1,1,28,28])
Conv2doutputshape:torch.Size([1,6,28,28])
Sigmoidoutputshape:torch.Size([1,6,28,28])
AvgPool2doutputshape:torch.Size([1,6,14,14])
Conv2doutputshape:torch.Size([1,16,10,10])
Sigmoidoutputshape:torch.Size([1,16,10,10])
AvgPool2doutputshape:torch.Size([1,16,5,5])
Flattenoutputshape:torch.Size([1,400])
Linearoutputshape:torch.Size([1,120])
Sigmoidoutputshape:torch.Size([1,120])
Linearoutputshape:torch.Size([1,84])
Sigmoidoutputshape:torch.Size([1,84])
Linearoutputshape:torch.Size([1,10])

請注意,在整個卷積塊中,與上一層相比,每一層特征的高度和寬度都減小了。第一個卷積層使用2個像素的填充,來補償 5 × 5 卷積核導(dǎo)致的特征減少。相反,第二個卷積層沒有填充,因此高度和寬度都減少了4個像素。隨著層疊的上升,通道的數(shù)量從輸入時的1個,增加到第一個卷積層之后的6個,再到第二個卷積層之后的16個。同時,每個匯聚層的高度和寬度都減半。最后,每個全連接層減少維度,最終輸出一個維數(shù)與結(jié)果分類數(shù)相匹配的輸出。

模型訓(xùn)練

現(xiàn)在我們已經(jīng)實現(xiàn)了LeNet,讓我們看看LeNet在Fashion-MNIST數(shù)據(jù)集上的表現(xiàn)。

batch_size=256
train_iter,test_iter=d2l.load_data_fashion_mnist(batch_size=batch_size)

雖然卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)較少,但與深度的多層感知機相比,它們的計算成本仍然很高,因為每個參數(shù)都參與更多的乘法。
如果我們有機會使用GPU,可以用它加快訓(xùn)練。

總結(jié)

以上是生活随笔為你收集整理的什么是卷积神经网络LeNet的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。