最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python深度學(xué)習(xí)pytorch神經(jīng)網(wǎng)絡(luò)塊的網(wǎng)絡(luò)之VGG

 更新時(shí)間:2021年10月11日 11:22:54   作者:Supre_yuan  
雖然AlexNet證明深層神經(jīng)網(wǎng)絡(luò)卓有成效,但它沒(méi)有提供一個(gè)通用的模板來(lái)指導(dǎo)后續(xù)的研究人員設(shè)計(jì)新的網(wǎng)絡(luò)。下面,我們將介紹一些常用于設(shè)計(jì)深層神經(jīng)網(wǎng)絡(luò)的啟發(fā)式概念

與芯片設(shè)計(jì)中工程師從放置晶體管到邏輯元件再到邏輯塊的過(guò)程類似,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)也逐漸變得更加抽象。研究人員開始從單個(gè)神經(jīng)元的角度思考問(wèn)題,發(fā)展到整個(gè)層次,現(xiàn)在又轉(zhuǎn)向模塊,重復(fù)各層的模式。

使用塊的想法首先出現(xiàn)在牛津大學(xué)的視覺(jué)幾何組(visualgeometry Group)(VGG)的VGG網(wǎng)絡(luò)中。通過(guò)使用循環(huán)和子程序,可以很容易地在任何現(xiàn)代深度學(xué)習(xí)框架的代碼中實(shí)現(xiàn)這些重復(fù)的結(jié)構(gòu)。

VGG塊

經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)的基本組成部分是下面的這個(gè)序列:

1.帶填充以保持分辨率的卷積層

2.非線性激活函數(shù),如ReLU

3.匯聚層,如最大匯聚層

而一個(gè)VGG塊與之類似,由一系列卷積層組成,后面再加上用于空間下采樣的最大匯聚層。

在最初的VGG論文中,作者使用了帶有 3 × 3卷積核、填充為1(保持高度和寬度)的卷積層,和帶有 2 × 2 池化窗口、步幅為2(每個(gè)塊后的分辨率減半)的最大匯聚層。

在下面的代碼中,我們定義了一個(gè)名為vgg_block的函數(shù)來(lái)實(shí)現(xiàn)VGG塊。

該函數(shù)有三個(gè)參數(shù),分別對(duì)應(yīng)于卷積層的數(shù)量num_convs、輸入通道的數(shù)量in_channels和輸出通道的數(shù)量out_channels。

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

def vgg_block(num_convs, in_channels, out_channels):
	layers = []
	for _ in range(num_convs):
		layers.append(nn.Conv2d(in_channels, out_channels, kernel_size = 3, padding=1))
		leyers.append(nn.ReLU())
		in_channels = out_channels
	layers.append(nn.MaxPool2d(kernel_size=2, stride=2))
	return nn.Sequential(*layers)

VGG網(wǎng)絡(luò)

與AlexNet、LeNet一樣,VGG網(wǎng)絡(luò)可以分為兩個(gè)部分:第一部分主要由卷積層和匯聚層組成,第二部分由全連接層組成。如下圖所示:

在這里插入圖片描述

VGG神經(jīng)網(wǎng)絡(luò)連續(xù)連接上圖的幾個(gè)VGG塊(在vgg_block函數(shù)中定義)。其中有超參數(shù)變量conv_arch。該變量指定了每個(gè)VGG塊里的卷積層的個(gè)數(shù)和輸出通道數(shù)。全連接模塊則與AlexNet中的相同。

原始VGG網(wǎng)絡(luò)中有5個(gè)卷積塊,其中前兩個(gè)塊各有一個(gè)卷積層,后三個(gè)塊包含兩個(gè)卷積層。第一個(gè)模塊有64個(gè)輸出通道,每個(gè)后續(xù)模塊將輸出通道數(shù)量翻倍,直到數(shù)字達(dá)到512。由于該網(wǎng)絡(luò)使用8個(gè)卷積層和3個(gè)全連接層,因此它通常被稱為VGG-11。

conv_arch = ((1, 64), (1, 128), (2, 256), (2, 512), (2, 512))

下面的代碼實(shí)現(xiàn)了VGG-11??梢酝ㄟ^(guò)在conv_arch上執(zhí)行for循環(huán)來(lái)簡(jiǎn)單實(shí)現(xiàn)。

def vgg(conv_arch):
	conv_blks = []
	in_channels = 1
	# 卷積層部分
	for (num_convs, out_channels) in conv_arch:
		conv_blks.append(vgg_block(num_convs, in_cannels, out_channels))
		in_channels = out_channels

	return nn.Sequential(
		*conv_blks, nn.Flatten(),
		# 全連接層部分
		nn.Linear(out_channels * 7 * 7, 4096), nn.ReLU(), nn.Dropout(0.5),
		nn.Linear(4096, 4096), nn.ReLU(), nn.Dropout(0.5),
		nn.Linear(4096, 10)
	)

net = vgg(conv_arch)

接下來(lái),我們將構(gòu)建一個(gè)高度和寬度為224的單通道數(shù)據(jù)樣本,以觀察每個(gè)層輸出的形狀。

X = torch.randn(size=(1, 1, 224, 224))
for blk in net:
	X = blk(X)
	print(blk.__class__.__name__, 'output shape: \t', X.shape)
Sequential output shape: torch.Size([1, 64, 112, 112])
Sequential output shape: torch.Size([1, 128, 56, 56])
Sequential output shape: torch.Size([1, 256, 28, 28])
Sequential output shape: torch.Size([1, 512, 14, 14])
Sequential output shape: torch.Size([1, 512, 7, 7])
Flatten output shape: torch.Size([1, 25088])
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])

我們?cè)诿總€(gè)塊的高度和寬度減半,最終高度和寬度都為7。最后再展平表示,送入全連接層處理。

訓(xùn)練模型

由于VGG-11比AlexNet計(jì)算量更大,因此我們構(gòu)建了一個(gè)通道數(shù)較少的網(wǎng)絡(luò),足夠用于訓(xùn)練Fashion-MNIST數(shù)據(jù)集。

ratio = 4
small_conv_arch = [(pair[0], pair[1] // ratio) for pair in conv_arch]
net = vgg(small_conv_arch)

除了使用略高的學(xué)習(xí)率外,模型訓(xùn)練過(guò)程與AlexNet類似。

lr, num_epochs, batch_size = 0.05, 10, 128

train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size, resize=224)
d2l.train_ch6(net, train_iter, test_iter, num_epochs, lr, d2l.try_gpu())
loss 0.175, train axx 0.935, test acc 0.917
2559.6 examples/sec on cuda:0

在這里插入圖片描述

以上就是Python神經(jīng)網(wǎng)絡(luò)塊的網(wǎng)絡(luò)之VGG深度學(xué)習(xí)的詳細(xì)內(nèi)容,更多關(guān)于Python神經(jīng)網(wǎng)絡(luò)VGG塊的網(wǎng)絡(luò)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用Python生成新春煙花效果的方法

    使用Python生成新春煙花效果的方法

    新春佳節(jié)到來(lái)之際,煙花的璀璨綻放象征著喜慶和熱鬧,如果能通過(guò)代碼在屏幕上生成煙花效果,既能增加節(jié)日的趣味,也能加深對(duì)編程的理解,本篇博客將詳細(xì)介紹如何使用Python生成新春煙花效果,包括實(shí)現(xiàn)原理、代碼解析以及常見問(wèn)題的解決方案,需要的朋友可以參考下
    2025-01-01
  • pandas實(shí)戰(zhàn):分析三國(guó)志人物示例實(shí)現(xiàn)

    pandas實(shí)戰(zhàn):分析三國(guó)志人物示例實(shí)現(xiàn)

    這篇文章主要介紹了pandas實(shí)戰(zhàn):分析三國(guó)志人物示例實(shí)現(xiàn),本文章內(nèi)容詳細(xì),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,需要的朋友可以參考下
    2023-01-01
  • Python實(shí)現(xiàn)服務(wù)端渲染SSR的示例代碼

    Python實(shí)現(xiàn)服務(wù)端渲染SSR的示例代碼

    服務(wù)端渲染是一種常見的技術(shù)策略,特別是在需要改善網(wǎng)站的搜索引擎優(yōu)化(SEO)和首屏加載時(shí)間的場(chǎng)景下,本文將介紹如何利用?Python?實(shí)現(xiàn)?SSR,感興趣的可以了解下
    2024-02-02
  • Python基于爬蟲實(shí)現(xiàn)全網(wǎng)搜索并下載音樂(lè)

    Python基于爬蟲實(shí)現(xiàn)全網(wǎng)搜索并下載音樂(lè)

    這篇文章主要介紹了Python基于爬蟲實(shí)現(xiàn)全網(wǎng)搜索并下載音樂(lè)的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-02-02
  • Python中OpenCV?Tutorials?20??高動(dòng)態(tài)范圍成像的實(shí)現(xiàn)步驟

    Python中OpenCV?Tutorials?20??高動(dòng)態(tài)范圍成像的實(shí)現(xiàn)步驟

    這篇文章主要介紹了OpenCV?Tutorials?20?-?高動(dòng)態(tài)范圍成像,本文還給大家展示了一種稱為曝光融合的替代方法,它可以產(chǎn)生低動(dòng)態(tài)范圍的圖像,需要的朋友可以參考下
    2022-06-06
  • python繪制直線的方法

    python繪制直線的方法

    這篇文章主要為大家詳細(xì)介紹了python繪制直線的方法,繪制直線通用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • python繪制玫瑰的實(shí)現(xiàn)代碼

    python繪制玫瑰的實(shí)現(xiàn)代碼

    這篇文章主要介紹了python繪制玫瑰的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 基于Python實(shí)現(xiàn)自動(dòng)掃雷詳解

    基于Python實(shí)現(xiàn)自動(dòng)掃雷詳解

    這篇文章主要介紹了如何利用Python+OpenCV實(shí)現(xiàn)了自動(dòng)掃雷,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定的幫助,需要的可以參考一下
    2022-01-01
  • 用pandas劃分?jǐn)?shù)據(jù)集實(shí)現(xiàn)訓(xùn)練集和測(cè)試集

    用pandas劃分?jǐn)?shù)據(jù)集實(shí)現(xiàn)訓(xùn)練集和測(cè)試集

    這篇文章主要介紹了用pandas劃分?jǐn)?shù)據(jù)集實(shí)現(xiàn)訓(xùn)練集和測(cè)試集,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 淺談Keras中fit()和fit_generator()的區(qū)別及其參數(shù)的坑

    淺談Keras中fit()和fit_generator()的區(qū)別及其參數(shù)的坑

    這篇文章主要介紹了Keras中fit()和fit_generator()的區(qū)別及其參數(shù)的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05

最新評(píng)論

高陵县| 白银市| 那坡县| 綦江县| 盘山县| 桐城市| 昌黎县| 天峻县| 平利县| 米脂县| 巫溪县| 桦南县| 安多县| 平昌县| 日照市| 乌拉特后旗| 高唐县| 汪清县| 噶尔县| 东丰县| 梅州市| 民勤县| 普兰店市| 雷波县| 乌兰县| 黑龙江省| 普安县| 镇远县| 扶风县| 大理市| 溧阳市| 湘阴县| 云南省| 雷山县| 浦北县| 陈巴尔虎旗| 富蕴县| 固阳县| 永丰县| 雷州市| 偏关县|