国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

24 深度卷積神經(jīng)網(wǎng)絡(luò) AlexNet【李沐動手學(xué)深度學(xué)習(xí)v2課程筆記】(備注:含AlexNet和LeNet對比)

這篇具有很好參考價值的文章主要介紹了24 深度卷積神經(jīng)網(wǎng)絡(luò) AlexNet【李沐動手學(xué)深度學(xué)習(xí)v2課程筆記】(備注:含AlexNet和LeNet對比)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1. 深度學(xué)習(xí)機器學(xué)習(xí)的發(fā)展

1.1?核方法

1.2 幾何學(xué)

1.3 特征工程 opencv

1.4? Hardware

2. AlexNet

3. 代碼


1. 深度學(xué)習(xí)機器學(xué)習(xí)的發(fā)展

1.1?核方法

2001 Learning with Kernels 核方法 (機器學(xué)習(xí))

特征提取、選擇核函數(shù)來計算相似性、凸優(yōu)化問題、漂亮的定理

24 深度卷積神經(jīng)網(wǎng)絡(luò) AlexNet【李沐動手學(xué)深度學(xué)習(xí)v2課程筆記】(備注:含AlexNet和LeNet對比),李沐深度學(xué)習(xí),深度學(xué)習(xí),cnn,筆記

1.2 幾何學(xué)

2000 Multiple View Geometry in computer vision

抽取特征、描述集合、(非)凸優(yōu)化、漂亮定理、如果假設(shè)滿足了,效果非常好

24 深度卷積神經(jīng)網(wǎng)絡(luò) AlexNet【李沐動手學(xué)深度學(xué)習(xí)v2課程筆記】(備注:含AlexNet和LeNet對比),李沐深度學(xué)習(xí),深度學(xué)習(xí),cnn,筆記

1.3 特征工程 opencv

特征工程是關(guān)鍵、特征描述子:SIFT、SURF、視覺詞袋(聚類)、最后用

24 深度卷積神經(jīng)網(wǎng)絡(luò) AlexNet【李沐動手學(xué)深度學(xué)習(xí)v2課程筆記】(備注:含AlexNet和LeNet對比),李沐深度學(xué)習(xí),深度學(xué)習(xí),cnn,筆記

1.4? Hardware

從上到下依次為樣本大小、內(nèi)存大小、CPU速度

24 深度卷積神經(jīng)網(wǎng)絡(luò) AlexNet【李沐動手學(xué)深度學(xué)習(xí)v2課程筆記】(備注:含AlexNet和LeNet對比),李沐深度學(xué)習(xí),深度學(xué)習(xí),cnn,筆記

24 深度卷積神經(jīng)網(wǎng)絡(luò) AlexNet【李沐動手學(xué)深度學(xué)習(xí)v2課程筆記】(備注:含AlexNet和LeNet對比),李沐深度學(xué)習(xí),深度學(xué)習(xí),cnn,筆記

計算能力和算法能力在不同階段的發(fā)展能力導(dǎo)致大家在選取上有偏好

1.5 ImageNet

2010 ImageNet 物體分類數(shù)據(jù)集:自然物體的彩色圖片

2. AlexNet

24 深度卷積神經(jīng)網(wǎng)絡(luò) AlexNet【李沐動手學(xué)深度學(xué)習(xí)v2課程筆記】(備注:含AlexNet和LeNet對比),李沐深度學(xué)習(xí),深度學(xué)習(xí),cnn,筆記

丟棄法、Relu、MaxPooling

24 深度卷積神經(jīng)網(wǎng)絡(luò) AlexNet【李沐動手學(xué)深度學(xué)習(xí)v2課程筆記】(備注:含AlexNet和LeNet對比),李沐深度學(xué)習(xí),深度學(xué)習(xí),cnn,筆記

24 深度卷積神經(jīng)網(wǎng)絡(luò) AlexNet【李沐動手學(xué)深度學(xué)習(xí)v2課程筆記】(備注:含AlexNet和LeNet對比),李沐深度學(xué)習(xí),深度學(xué)習(xí),cnn,筆記

24 深度卷積神經(jīng)網(wǎng)絡(luò) AlexNet【李沐動手學(xué)深度學(xué)習(xí)v2課程筆記】(備注:含AlexNet和LeNet對比),李沐深度學(xué)習(xí),深度學(xué)習(xí),cnn,筆記

從LeNet(左)到AlexNet(右)

AlexNet和LeNet的設(shè)計理念非常相似,但也存在顯著差異。

  1. AlexNet比相對較小的LeNet5要深得多。AlexNet由八層組成:五個卷積層、兩個全連接隱藏層和一個全連接輸出層?!拘录恿?層卷積層;更多的輸出通道;隱藏全連接層后新加了丟棄層】

  2. AlexNet使用ReLU而不是sigmoid作為其激活函數(shù)。

  3. 更大的池化窗口、核窗口和步長;更多的輸出通道。

24 深度卷積神經(jīng)網(wǎng)絡(luò) AlexNet【李沐動手學(xué)深度學(xué)習(xí)v2課程筆記】(備注:含AlexNet和LeNet對比),李沐深度學(xué)習(xí),深度學(xué)習(xí),cnn,筆記

24 深度卷積神經(jīng)網(wǎng)絡(luò) AlexNet【李沐動手學(xué)深度學(xué)習(xí)v2課程筆記】(備注:含AlexNet和LeNet對比),李沐深度學(xué)習(xí),深度學(xué)習(xí),cnn,筆記

3. 代碼實現(xiàn)

3.1 模型設(shè)計

在AlexNet的第一層,卷積窗口的形狀是11×11。 由于ImageNet中大多數(shù)圖像的寬和高比MNIST圖像的多10倍以上,因此,需要一個更大的卷積窗口來捕獲目標(biāo)。 第二層中的卷積窗口形狀被縮減為5×5,然后是3×3。 此外,在第一層、第二層和第五層卷積層之后,加入窗口形狀為3×3、步幅為2的最大匯聚層。 而且,AlexNet的卷積通道數(shù)目是LeNet的10倍。

在最后一個卷積層后有兩個全連接層,分別有4096個輸出。 這兩個巨大的全連接層擁有將近1GB的模型參數(shù)。 由于早期GPU顯存有限,原版的AlexNet采用了雙數(shù)據(jù)流設(shè)計,使得每個GPU只負責(zé)存儲和計算模型的一半?yún)?shù)。 幸運的是,現(xiàn)在GPU顯存相對充裕,所以現(xiàn)在很少需要跨GPU分解模型(因此,本書的AlexNet模型在這方面與原始論文稍有不同)。

3.2 激活函數(shù)

此外,AlexNet將sigmoid激活函數(shù)改為更簡單的ReLU激活函數(shù)。 一方面,ReLU激活函數(shù)的計算更簡單,它不需要如sigmoid激活函數(shù)那般復(fù)雜的求冪運算。 另一方面,當(dāng)使用不同的參數(shù)初始化方法時,ReLU激活函數(shù)使訓(xùn)練模型更加容易。 當(dāng)sigmoid激活函數(shù)的輸出非常接近于0或1時,這些區(qū)域的梯度幾乎為0,因此反向傳播無法繼續(xù)更新一些模型參數(shù)。 相反,ReLU激活函數(shù)在正區(qū)間的梯度總是1。 因此,如果模型參數(shù)沒有正確初始化,sigmoid函數(shù)可能在正區(qū)間內(nèi)得到幾乎為0的梯度,從而使模型無法得到有效的訓(xùn)練。

3.3 容量控制和預(yù)處理

AlexNet通過暫退法(?4.6節(jié))控制全連接層的模型復(fù)雜度,而LeNet只使用了權(quán)重衰減。 為了進一步擴充數(shù)據(jù),AlexNet在訓(xùn)練時增加了大量的圖像增強數(shù)據(jù),如翻轉(zhuǎn)、裁切和變色。 這使得模型更健壯,更大的樣本量有效地減少了過擬合。

import torch
from torch import nn
from d2l import torch as d2l

net = nn.Sequential(
    # 這里使用一個11*11的更大窗口來捕捉對象。
    # 同時,步幅為4,以減少輸出的高度和寬度。
    # 另外,輸出通道的數(shù)目遠大于LeNet
    nn.Conv2d(1, 96, kernel_size=11, stride=4, padding=1), nn.ReLU(),
    nn.MaxPool2d(kernel_size=3, stride=2),
    # 減小卷積窗口,使用填充為2來使得輸入與輸出的高和寬一致,且增大輸出通道數(shù)
    nn.Conv2d(96, 256, kernel_size=5, padding=2), nn.ReLU(),
    nn.MaxPool2d(kernel_size=3, stride=2),
    # 使用三個連續(xù)的卷積層和較小的卷積窗口。
    # 除了最后的卷積層,輸出通道的數(shù)量進一步增加。
    # 在前兩個卷積層之后,匯聚層不用于減少輸入的高度和寬度
    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),
    nn.Flatten(),
    # 這里,全連接層的輸出數(shù)量是LeNet中的好幾倍。使用dropout層來減輕過擬合
    nn.Linear(6400, 4096), nn.ReLU(),
    nn.Dropout(p=0.5),
    nn.Linear(4096, 4096), nn.ReLU(),
    nn.Dropout(p=0.5),
    # 最后是輸出層。由于這里使用Fashion-MNIST,所以用類別數(shù)為10,而非論文中的1000
    nn.Linear(4096, 10))

我們構(gòu)造一個高度和寬度都為224的單通道數(shù)據(jù),來觀察每一層輸出的形狀。 它與?圖7.1.2中的AlexNet架構(gòu)相匹配。

X = torch.randn(1, 1, 224, 224)
for layer in net:
    X=layer(X)
    print(layer.__class__.__name__,'output shape:\t',X.shape)
Conv2d output shape:         torch.Size([1, 96, 54, 54])
ReLU output shape:   torch.Size([1, 96, 54, 54])
MaxPool2d output shape:      torch.Size([1, 96, 26, 26])
Conv2d output shape:         torch.Size([1, 256, 26, 26])
ReLU output shape:   torch.Size([1, 256, 26, 26])
MaxPool2d output shape:      torch.Size([1, 256, 12, 12])
Conv2d output shape:         torch.Size([1, 384, 12, 12])
ReLU output shape:   torch.Size([1, 384, 12, 12])
Conv2d output shape:         torch.Size([1, 384, 12, 12])
ReLU output shape:   torch.Size([1, 384, 12, 12])
Conv2d output shape:         torch.Size([1, 256, 12, 12])
ReLU output shape:   torch.Size([1, 256, 12, 12])
MaxPool2d output shape:      torch.Size([1, 256, 5, 5])
Flatten output shape:        torch.Size([1, 6400])
Linear output shape:         torch.Size([1, 4096])
ReLU output shape:   torch.Size([1, 4096])
Dropout output shape:        torch.Size([1, 4096])
Linear output shape:         torch.Size([1, 4096])
ReLU output shape:   torch.Size([1, 4096])
Dropout output shape:        torch.Size([1, 4096])
Linear output shape:         torch.Size([1, 10])

3.4 讀取數(shù)據(jù)集

盡管原文中AlexNet是在ImageNet上進行訓(xùn)練的,但本書在這里使用的是Fashion-MNIST數(shù)據(jù)集。因為即使在現(xiàn)代GPU上,訓(xùn)練ImageNet模型,同時使其收斂可能需要數(shù)小時或數(shù)天的時間。 將AlexNet直接應(yīng)用于Fashion-MNIST的一個問題是,F(xiàn)ashion-MNIST圖像的分辨率(28×28像素)低于ImageNet圖像。 為了解決這個問題,我們將它們增加到224×224(通常來講這不是一個明智的做法,但在這里這樣做是為了有效使用AlexNet架構(gòu))。 這里需要使用d2l.load_data_fashion_mnist函數(shù)中的resize參數(shù)執(zhí)行此調(diào)整。

batch_size = 128
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size, resize=224)

3.5 訓(xùn)練AlexNet

lr, num_epochs = 0.01, 10
d2l.train_ch6(net, train_iter, test_iter, num_epochs, lr, d2l.try_gpu())

24 深度卷積神經(jīng)網(wǎng)絡(luò) AlexNet【李沐動手學(xué)深度學(xué)習(xí)v2課程筆記】(備注:含AlexNet和LeNet對比),李沐深度學(xué)習(xí),深度學(xué)習(xí),cnn,筆記

4. 小結(jié)

  • AlexNet的架構(gòu)與LeNet相似,但使用了更多的卷積層和更多的參數(shù)來擬合大規(guī)模的ImageNet數(shù)據(jù)集。

  • 今天,AlexNet已經(jīng)被更有效的架構(gòu)所超越,但它是從淺層網(wǎng)絡(luò)到深層網(wǎng)絡(luò)的關(guān)鍵一步。

  • 盡管AlexNet的代碼只比LeNet多出幾行,但學(xué)術(shù)界花了很多年才接受深度學(xué)習(xí)這一概念,并應(yīng)用其出色的實驗結(jié)果。這也是由于缺乏有效的計算工具。

  • Dropout、ReLU和預(yù)處理是提升計算機視覺任務(wù)性能的其他關(guān)鍵步驟。文章來源地址http://www.zghlxwxcb.cn/news/detail-838735.html

到了這里,關(guān)于24 深度卷積神經(jīng)網(wǎng)絡(luò) AlexNet【李沐動手學(xué)深度學(xué)習(xí)v2課程筆記】(備注:含AlexNet和LeNet對比)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包