衡阳派盒市场营销有限公司

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>PyTorch教程8.4之多分支網絡(GoogLeNet)

PyTorch教程8.4之多分支網絡(GoogLeNet)

2023-06-05 | pdf | 0.32 MB | 次下載 | 免費

資料介紹

2014 年,GoogLeNet贏得了 ImageNet 挑戰賽 Szegedy等人,2015 年) ,它使用的結構結合了 NiN Lin等人,2013 年、重復塊 Simonyan 和 Zisserman,2014 年和卷積混合的優點內核。它也可以說是第一個在 CNN 中明確區分主干(數據攝取)、主體(數據處理)和頭部(預測)的網絡這種設計模式在深度網絡的設計中一直存在:由對圖像進行操作的前 2-3 個卷積給出。他們從底層圖像中提取低級特征。接下來是一卷積塊。最后,頭部將目前獲得的特征映射到手頭所需的分類、分割、檢測或跟蹤問題。

GoogLeNet 的關鍵貢獻是網絡主體的設計。它巧妙地解決了卷積核的選擇問題。而其他作品試圖確定哪個卷積,范圍從 1×111×11最好,它只是 連接多分支卷積。接下來我們介紹一個略微簡化的 GoogLeNet 版本:最初的設計包括許多通過中間損失函數穩定訓練的技巧,應用于網絡的多個層。由于改進的訓練算法的可用性,它們不再是必需的。

import torch
from torch import nn
from torch.nn import functional as F
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 jax import numpy as jnp
from d2l import jax as d2l
import tensorflow as tf
from d2l import tensorflow as d2l

8.4.1. 起始塊

GoogLeNet 中的基本卷積塊稱為Inception 塊,源于電影 Inception的模因“我們需要更深入” 。

https://file.elecfans.com/web2/M00/AA/42/pYYBAGR9NamAWgv_AAGuXi_IIk8156.svg

圖 8.4.1 Inception 塊的結構。

如圖8.4.1所示,初始塊由四個并行分支組成。前三個分支使用窗口大小為1×1,3×3, 和 5×5從不同的空間大小中提取信息中間兩個分支還加了一個1×1輸入的卷積減少了通道的數量,降低了模型的復雜度。第四個分支使用3×3最大池化層,然后是1×1卷積層改變通道數。四個分支都使用適當的填充使輸入和輸出具有相同的高度和寬度。最后,每個分支的輸出沿著通道維度連接起來,并構成塊的輸出。Inception 塊的常用超參數是每層的輸出通道數,即如何在不同大小的卷積之間分配容量。

class Inception(nn.Module):
  # c1--c4 are the number of output channels for each branch
  def __init__(self, c1, c2, c3, c4, **kwargs):
    super(Inception, self).__init__(**kwargs)
    # Branch 1
    self.b1_1 = nn.LazyConv2d(c1, kernel_size=1)
    # Branch 2
    self.b2_1 = nn.LazyConv2d(c2[0], kernel_size=1)
    self.b2_2 = nn.LazyConv2d(c2[1], kernel_size=3, padding=1)
    # Branch 3
    self.b3_1 = nn.LazyConv2d(c3[0], kernel_size=1)
    self.b3_2 = nn.LazyConv2d(c3[1], kernel_size=5, padding=2)
    # Branch 4
    self.b4_1 = nn.MaxPool2d(kernel_size=3, stride=1, padding=1)
    self.b4_2 = nn.LazyConv2d(c4, kernel_size=1)

  def forward(self, x):
    b1 = F.relu(self.b1_1(x))
    b2 = F.relu(self.b2_2(F.relu(self.b2_1(x))))
    b3 = F.relu(self.b3_2(F.relu(self.b3_1(x))))
    b4 = F.relu(self.b4_2(self.b4_1(x)))
    return torch.cat((b1, b2, b3, b4), dim=1)
class Inception(nn.Block):
  # c1--c4 are the number of output channels for each branch
  def __init__(self, c1, c2, c3, c4, **kwargs):
    super(Inception, self).__init__(**kwargs)
    # Branch 1
    self.b1_1 = nn.Conv2D(c1, kernel_size=1, activation='relu')
    # Branch 2
    self.b2_1 = nn.Conv2D(c2[0], kernel_size=1, activation='relu')
    self.b2_2 = nn.Conv2D(c2[1], kernel_size=3, padding=1,
               activation='relu')
    # Branch 3
    self.b3_1 = nn.Conv2D(c3[0], kernel_size=1, activation='relu')
    self.b3_2 = nn.Conv2D(c3[1], kernel_size=5, padding=2,
               activation='relu')
    # Branch 4
    self.b4_1 = nn.MaxPool2D(pool_size=3, strides=1, padding=1)
    self.b4_2 = nn.Conv2D(c4, kernel_size=1, activation='relu')

  def forward(self, x):
    b1 = self.b1_1(x)
    b2 = self.b2_2(self.b2_1(x))
    b3 = self.b3_2(self.b3_1(x))
    b4 = self.b4_2(self.b4_1(x))
    return np.concatenate((b1, b2, b3, b4), axis=1)
class Inception(nn.Module):
  # `c1`--`c4` are the number of output channels for each branch
  c1: int
  c2: tuple
  c3: tuple
  c4: int

  def setup(self):
    # Branch 1
    self.b1_1 = nn.Conv(self.c1, kernel_size=(1, 1))
    # Branch 2
    self.b2_1 = nn.Conv(self.c2[0], kernel_size=(1, 1))
    self.b2_2 = nn.Conv(self.c2[1], kernel_size=(3, 3), padding='same')
    # Branch 3
    self.b3_1 = nn.Conv(self.c3[0], kernel_size=(1, 1))
    self.b3_2 = nn.Conv(self.c3[1], kernel_size=(5, 5), padding='same')
    # Branch 4
    self.b4_1 = lambda x: nn.max_pool(x, window_shape=(3, 3),
                     strides=(1, 1), padding='same')
    self.b4_2 = nn.Conv(self.c4, kernel_size=(1, 1))

  def __call__(self, x):
    b1 = nn.relu(self.b1_1(x))
    b2 = nn.relu(self.b2_2(nn.relu(self.b2_1(x))))
    b3 = nn.relu(self.b3_2(nn.relu(self.b3_1(x))))
    b4 = nn.relu(self.b4_2(self.b4_1(x)))
    return jnp.concatenate((b1, b2, b3, b4), axis=-1)
?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

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

本月

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

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
实战百家乐官网的玩法技巧和规则| 百家乐顺序| 大发888官网www.dafa888.com| 网络百家乐官网赌博视频| 皇冠网百家乐官网平台| 战胜百家乐的技巧| 789棋牌游戏| 百家乐官网网上真钱娱乐场| 威尼斯人娱乐城注册送彩金| 百家乐官网技术论坛| 喜力百家乐的玩法技巧和规则 | 百家乐官网评级网站| 百家乐棋牌游戏开发| 百家乐官网大西洋城| 大发888娱乐场下载yguard| 百家乐官网娱乐平台会员注册| 大发888娱乐方下载| 金殿百家乐官网的玩法技巧和规则 | 破解百家乐官网视频游戏密码 | 百家乐官网在线赌场| 百家乐官网必知技巧| 太阳城ktv| 赤壁百家乐官网娱乐城| 德州扑克高级技巧| 百家乐仿水晶筹码| 彭泽县| 牌九百家乐的玩法技巧和规则| 新2百家乐官网娱乐城| 威尼斯人娱乐城是波音| 筹码百家乐官网的玩法技巧和规则| 大发888优惠代码| 游戏厅百家乐技巧| 百家乐官网策略详解| 老虎百家乐的玩法技巧和规则| 澳门百家乐官网的故事| 大发888游戏代充| 太阳城百家乐投注| 百家乐官网庄闲的分布| 大发888下载失败| 百家乐的寻龙定穴| 百家乐官网看炉子的方法|