電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>PyTorch教程8.2之使用塊的網(wǎng)絡(luò)(VGG)

PyTorch教程8.2之使用塊的網(wǎng)絡(luò)(VGG)

2023-06-05 | pdf | 0.33 MB | 次下載 | 免費(fèi)

資料介紹

雖然 AlexNet 提供了深度 CNN 可以取得良好結(jié)果的經(jīng)驗(yàn)證據(jù),但它沒有提供通用模板來指導(dǎo)后續(xù)研究人員設(shè)計(jì)新網(wǎng)絡(luò)。在接下來的部分中,我們將介紹幾個(gè)常用于設(shè)計(jì)深度網(wǎng)絡(luò)的啟發(fā)式概念。

該領(lǐng)域的進(jìn)展反映了芯片設(shè)計(jì)中 VLSI(超大規(guī)模集成)的進(jìn)展,工程師從將晶體管放置到邏輯元件再到邏輯塊Mead,1980 年。同樣,神經(jīng)網(wǎng)絡(luò)架構(gòu)的設(shè)計(jì)也變得越來越抽象,研究人員從單個(gè)神經(jīng)元的角度思考到整個(gè)層,現(xiàn)在轉(zhuǎn)向塊,重復(fù)層的模式。十年后,這已經(jīng)發(fā)展到研究人員使用整個(gè)訓(xùn)練模型將它們重新用于不同但相關(guān)的任務(wù)。此類大型預(yù)訓(xùn)練模型通常稱為 基礎(chǔ)模型 Bommasani等人,2021 年。

回到網(wǎng)絡(luò)設(shè)計(jì)。使用塊的想法首先出現(xiàn)于牛津大學(xué)的視覺幾何組 (VGG),在他們同名的VGG網(wǎng)絡(luò)中Simonyan 和 Zisserman,2014 年。通過使用循環(huán)和子例程,可以使用任何現(xiàn)代深度學(xué)習(xí)框架輕松地在代碼中實(shí)現(xiàn)這些重復(fù)結(jié)構(gòu)。

import torch
from torch import nn
from d2l import torch as d2l
from mxnet import init, np, npx
from mxnet.gluon import nn
from d2l import mxnet as d2l

npx.set_np()
import jax
from flax import linen as nn
from d2l import jax as d2l
import tensorflow as tf
from d2l import tensorflow as d2l

8.2.1. VGG 塊

CNN 的基本構(gòu)建塊是以下序列:(i) 帶有填充的卷積層以保持分辨率,(ii) 非線性,例如 ReLU,(iii) 池化層,例如最大池化以減少解決。這種方法的問題之一是空間分辨率下降得非???。特別是,這強(qiáng)加了一個(gè)硬限制log2?d網(wǎng)絡(luò)上所有維度之前的卷積層(d) 用完了。例如,在 ImageNet 的情況下,以這種方式不可能有超過 8 個(gè)卷積層。

Simonyan 和 Zisserman ( 2014 )的關(guān)鍵思想是以 塊的形式通過最大池化在下采樣之間使用多個(gè)卷積。他們主要感興趣的是深度網(wǎng)絡(luò)還是寬網(wǎng)??絡(luò)表現(xiàn)更好。例如,連續(xù)應(yīng)用兩個(gè) 3×3卷積接觸與單個(gè)相同的像素 5×5卷積確實(shí)如此。同時(shí),后者使用了大約同樣多的參數(shù)25?c2) 三個(gè) 3×3卷積做(3?9?c2). 在相當(dāng)詳細(xì)的分析中,他們表明深度和狹窄的網(wǎng)絡(luò)明顯優(yōu)于淺層網(wǎng)絡(luò)。這將深度學(xué)習(xí)置于對具有超過 100 層的典型應(yīng)用的更深網(wǎng)絡(luò)的追求上。堆疊3×3卷積已成為后來的深度網(wǎng)絡(luò)的黃金標(biāo)準(zhǔn)(最近Liu等人( 2022 )才重新考慮的設(shè)計(jì)決策)。因此,小卷積的快速實(shí)現(xiàn)已成為 GPU 的主要內(nèi)容 Lavin 和 Gray,2016 年

回到 VGG:一個(gè) VGG 塊由一系列卷積組成 3×3填充為 1 的內(nèi)核(保持高度和寬度)后跟一??個(gè)2×2步長為 2 的最大池化層(每個(gè)塊后將高度和寬度減半)。在下面的代碼中,我們定義了一個(gè)函數(shù)vgg_block來實(shí)現(xiàn)一個(gè) VGG 塊。

下面的函數(shù)有兩個(gè)參數(shù),對應(yīng)于卷積層數(shù)num_convs和輸出通道數(shù) num_channels。

def vgg_block(num_convs, out_channels):
  layers = []
  for _ in range(num_convs):
    layers.append(nn.LazyConv2d(out_channels, kernel_size=3, padding=1))
    layers.append(nn.ReLU())
  layers.append(nn.MaxPool2d(kernel_size=2,stride=2))
  return nn.Sequential(*layers)
def vgg_block(num_convs, num_channels):
  blk = nn.Sequential()
  for _ in range(num_convs):
    blk.add(nn.Conv2D(num_channels, kernel_size=3,
             padding=1, activation='relu'))
  blk.add(nn.MaxPool2D(pool_size=2, strides=2))
  return blk
def vgg_block(num_convs, out_channels):
  layers = []
  for _ in range(num_convs):
    layers.append(nn.Conv(out_channels, kernel_size=(3, 3), padding=(1, 1)))
    layers.append(nn.relu)
  layers.append(lambda x: nn.max_pool(x, window_shape=(2, 2), strides=(2, 2)))
  return nn.Sequential(layers)
def vgg_block(num_convs, num_channels):
  blk = tf.keras.models.Sequential()
  for _ in range(num_convs):
    blk.add(
      tf.keras.layers.Conv2D(num_channels, kernel_size=3,
                  padding='same', activation='relu'))
  blk.add(tf.keras.layers.MaxPool2D(pool_size=2, strides=2))
  return blk

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

與 AlexNet 和 LeNet 一樣,VGG 網(wǎng)絡(luò)可以分為兩部分:第一部分主要由卷積層和池化層組成,第二部分由與 AlexNet 相同的全連接層組成。關(guān)鍵區(qū)別在于卷積層在保持維數(shù)不變的非線性變換中分組,然后是分辨率降低步驟,如圖 8.2.1所示。

https://file.elecfans.com/web2/M00/A9/C7/poYBAGR9NYmAAu3EAATuF75_NS8172.svg

圖 8.2.1從 AlexNet 到 VGG。關(guān)鍵區(qū)別在于 VGG 由層塊組成,而 AlexNet 的層都是單獨(dú)設(shè)計(jì)的。

網(wǎng)絡(luò)的卷積部分連續(xù)連接 圖 8.2.1中的幾個(gè) VGG 塊(也在vgg_block函數(shù)中定義)。這種卷積分組是一種在過去十年中幾乎保持不變的模式,盡管操作的具體選擇已經(jīng)發(fā)生了相當(dāng)大的修改。該變量 conv_arch由一個(gè)元組列表(每個(gè)塊一個(gè))組成,其中每個(gè)元組包含兩個(gè)值:卷積層數(shù)和輸出通道數(shù),它們正是調(diào)用函數(shù)所需的參數(shù)vgg_block因此,VGG 定義了一個(gè)網(wǎng)絡(luò)家族,而不僅僅是一個(gè)特定的表現(xiàn)形式。要構(gòu)建一個(gè)特定的網(wǎng)絡(luò),我們只需迭代arch以組成塊。

class VGG(d2l.Classifier):
  def __init__(self, arch, lr=0.1, num_classes=10):
    super().__init__()
    self.save_hyperparameters()
    conv_blks = []
    for (num_convs, out_channels) in arch:
      conv_blks.append(vgg_block(num_convs, out_channels))
    self.net = nn.Sequential(
      *conv_blks, nn.Flatten(),
      nn.LazyLinear(4096), nn.ReLU(), nn.Dropout(0.5),
      nn.LazyLinear(4096), nn.ReLU(), nn.Dropout(0.5),
      nn.LazyLinear(num_classes))
    self.net.apply(d2l.init_cnn)
class VGG(d2l.Classifier):
  def __init__(self, arch, lr=0.1, num_classes=10):
    super().__init__()
    self.save_hyperparameters()
    self.net = nn.Sequential()
    for (num_convs, num_channels) in arch:
      self.net.add(vgg_block(num_convs, num_channels))
    self.net.add(nn.Dense(4096, activation=
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)