欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python編程pytorch深度卷積神經(jīng)網(wǎng)絡(luò)AlexNet詳解

 更新時(shí)間:2021年10月11日 11:47:34   作者:Supre_yuan  
AlexNet和LeNet的架構(gòu)非常相似。這里我們提供了一個(gè)稍微精簡(jiǎn)版本的AlexNet,去除了當(dāng)年需要兩個(gè)小型GPU同時(shí)運(yùn)算的設(shè)計(jì)特點(diǎn)

2012年,AlexNet橫空出世。它首次證明了學(xué)習(xí)到的特征可以超越手工設(shè)計(jì)的特征。它一舉打破了計(jì)算機(jī)視覺研究的現(xiàn)狀。AlexNet使用了8層卷積神經(jīng)網(wǎng)絡(luò),并以很大的優(yōu)勢(shì)贏得了2012年的ImageNet圖像識(shí)別挑戰(zhàn)賽。

下圖展示了從LeNet(左)到AlexNet(right)的架構(gòu)。

在這里插入圖片描述

AlexNet和LeNet的設(shè)計(jì)理念非常相似,但也有如下區(qū)別:

  • AlexNet比相對(duì)較小的LeNet5要深得多。
  • AlexNet使用ReLU而不是sigmoid作為其激活函數(shù)。

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

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

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

net = nn.Sequential(
	# 這里,我們使用一個(gè)11*11的更大窗口來捕捉對(duì)象
	# 同時(shí),步幅為4,以減少輸出的高度和寬度
	# 另外,輸出通道的數(shù)目遠(yuǎn)大于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)
	# 使用三個(gè)連續(xù)的卷積層和較小的卷積窗口
	# 除了最后的卷積層,輸出通道的數(shù)量進(jìn)一步增加
	# 在前兩個(gè)卷積層之后,匯聚層不用于減少輸入的高度和寬度
	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, 384, 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
	nn.Linear(4096, 10)
)

我們構(gòu)造一個(gè)高度和寬度都為224的單通道數(shù)據(jù),來觀察每一層輸出的形狀。它與上面離得最近的圖中的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])

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

在這里將AlexNet直接應(yīng)用于Fashion-MNIST的識(shí)別,但這里有一個(gè)問題,那就是Fashion-MNIST圖像的分辨率( 28 × 28 28\times28 28×28像素)低于ImageNet圖像。為了解決這個(gè)問題,我們將它們?cè)黾拥?224 × 224 224\times224 224×224(通常來講這不是一個(gè)明智的做法,但我們?cè)谶@里這樣做是為了有效使用AlexNet結(jié)構(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)

現(xiàn)在,我們可以開始訓(xùn)練AlexNet了,與LeNet相比,這里的主要變化是使用更小的學(xué)習(xí)速率訓(xùn)練,這是因?yàn)榫W(wǎng)絡(luò)更深更廣、圖像分辨率更高,訓(xùn)練卷積伸進(jìn)網(wǎng)絡(luò)就更昂貴。

lr, num_epochs = 0.01, 10
d2l.train_ch6(net, train_iter, test_iter, num_epochs, lr, d2l.try_gpu())
loss 0.330, train acc 0.879, test acc 0.877
4163.0 examples/sec on cuda:0

在這里插入圖片描述

以上就是Python編程pytorch深度卷積神經(jīng)網(wǎng)絡(luò)AlexNet詳解的詳細(xì)內(nèi)容,更多關(guān)于pytorch卷積神經(jīng)網(wǎng)絡(luò)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python自動(dòng)化unittest yaml使用過程解析

    python自動(dòng)化unittest yaml使用過程解析

    這篇文章主要介紹了python自動(dòng)化unittest yaml使用過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Python?計(jì)算機(jī)視覺編程進(jìn)階之OpenCV?圖像銳化及邊緣檢測(cè)

    Python?計(jì)算機(jī)視覺編程進(jìn)階之OpenCV?圖像銳化及邊緣檢測(cè)

    計(jì)算機(jī)視覺這種技術(shù)可以將靜止圖像或視頻數(shù)據(jù)轉(zhuǎn)換為一種決策或新的表示。所有這樣的轉(zhuǎn)換都是為了完成某種特定的目的而進(jìn)行的,本篇我們來學(xué)習(xí)下如何對(duì)圖像進(jìn)行銳化處理以及如何進(jìn)行邊緣檢測(cè)
    2021-11-11
  • Tensorflow分類器項(xiàng)目自定義數(shù)據(jù)讀入的實(shí)現(xiàn)

    Tensorflow分類器項(xiàng)目自定義數(shù)據(jù)讀入的實(shí)現(xiàn)

    這篇文章主要介紹了Tensorflow分類器項(xiàng)目自定義數(shù)據(jù)讀入的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-02-02
  • Django 聯(lián)表查詢操作方法

    Django 聯(lián)表查詢操作方法

    作為一個(gè)django使用的新手,在做練手項(xiàng)目中對(duì)聯(lián)表查詢感覺比較生疏,最近兩天整理了一些連表查詢應(yīng)用場(chǎng)景和使用方法以及無法使用django中ORM操作的原生查詢,對(duì)Django 聯(lián)表查詢操作感興趣的朋友跟隨小編一起看看吧
    2023-09-09
  • Python+OpenCV實(shí)現(xiàn)相機(jī)標(biāo)定的方法詳解

    Python+OpenCV實(shí)現(xiàn)相機(jī)標(biāo)定的方法詳解

    opencv中內(nèi)置了張正友的棋盤格標(biāo)定法,通過一些姿態(tài)各異的棋盤格圖像,可以標(biāo)定相機(jī)的內(nèi)外參數(shù),本文為大家介紹OpenCV進(jìn)行相機(jī)標(biāo)定的具體方法,希望對(duì)大家有所幫助
    2023-05-05
  • Python 檢查數(shù)組元素是否存在類似PHP isset()方法

    Python 檢查數(shù)組元素是否存在類似PHP isset()方法

    isset方法來檢查數(shù)組元素是否存在,在Python中無對(duì)應(yīng)函數(shù),在Python中一般可以通過異常來處理數(shù)組元素不存在的情況,而無須事先檢查
    2014-10-10
  • 詳解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法

    詳解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法

    這篇文章主要介紹了詳解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Python數(shù)學(xué)建模PuLP庫線性規(guī)劃進(jìn)階基于字典詳解

    Python數(shù)學(xué)建模PuLP庫線性規(guī)劃進(jìn)階基于字典詳解

    在大規(guī)模的規(guī)劃問題中,這樣逐個(gè)定義變量和設(shè)置模型參數(shù)非常繁瑣,效率很低。Pulp 庫提供了一種快捷方式,可以結(jié)合 Python語言的循環(huán)和容器,使用字典來創(chuàng)建問題
    2021-10-10
  • python 鏡像環(huán)境搭建總結(jié)

    python 鏡像環(huán)境搭建總結(jié)

    這篇文章主要介紹了python 鏡像環(huán)境搭建總結(jié),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • python打包exe文件并隱藏執(zhí)行CMD命令窗口問題

    python打包exe文件并隱藏執(zhí)行CMD命令窗口問題

    這篇文章主要介紹了python打包exe文件并隱藏執(zhí)行CMD命令窗口問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01

最新評(píng)論