0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

3天內(nèi)不再提示

PyTorch中nn.Conv2d與nn.ConvTranspose2d函數(shù)的用法

jf_96884364 ? 來源:jf_96884364 ? 作者:jf_96884364 ? 2023-01-11 16:43 ? 次閱讀

1. 通道數(shù)問題

  • 描述一個像素點,如果是灰度,那么只需要一個數(shù)值來描述它,就是單通道。如果有RGB三種顏色來描述它,就是三通道。最初輸入的圖片樣本的 channels ,取決于圖片類型;
  • 卷積操作完成后輸出的 out_channels ,取決于卷積核的數(shù)量。此時的 out_channels 也會作為下一次卷積時的卷積核的 in_channels;
  • 卷積核中的 in_channels ,上面已經(jīng)說了,就是上一次卷積的 out_channels ,如果是第一次做卷積,就是樣本圖片的 channels

舉個例子,假設現(xiàn)有一個為 6×6×3的圖片樣本,使用 3×3×3 的卷積核(filter)進行卷積操作。此時輸入圖片的 channels 為 3,而卷積核中的 in_channels 與需要進行卷積操作的數(shù)據(jù)的 channels 一致(就是圖片樣本,為3)。接下來進行卷積操作,卷積核中的27個數(shù)字與分別與樣本對應相乘后,再進行求和,得到第一個結果。依次進行,最終得到 4×4的結果。由于只有一個卷積核,所以最終得到的結果為 4×4×1,out_channels 為 1。如下圖所示:

在實際應用中,都會使用多個卷積核。這里如果再加一個卷積核,就會得到 4×4×2的結果。如下圖所示:

2. nn.Conv2d

class torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, groups=1, bias=True)

nn.Conv2d的功能是:對由多個輸入平面組成的輸入信號進行二維卷積。輸入信號的形式為:

(N,C_{in},H,W)

(1)參數(shù)說明

**N:**表示batch size(批處理參數(shù))

C_{in} :表示channel個數(shù)

**H,W:**分別表示特征圖的高和寬。

**stride(步長):**步長,默認為1,可以設為1個int型數(shù)或者一個(int, int)型的tuple。

**kernel_size:**卷積核的寬度和長度,單個整數(shù)或由兩個整數(shù)構成的list/tuple。如為單個整數(shù),則表示在各個空間維度的相同長度。

**padding(補0):**控制zero-padding的數(shù)目,padding是在卷積之前補0。

**dilation(擴張):**控制kernel點(卷積核點)的間距; 可以在此github地址查看:Dilated convolution animations

**groups(卷積核個數(shù)):**通常來說,卷積個數(shù)唯一,但是對某些情況,可以設置范圍在1 —— in_channels中數(shù)目的卷積核:

(2)圖像尺寸

經(jīng)過一次卷積之后,生成的圖的大?。?/p>

(original_size - (kernal_size - 1)) / stride

3. nn.ConvTranspose2d

nn.ConvTranspose2d的功能是進行反卷積操作

(1)輸入格式

nn.ConvTranspose2d(in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, groups=1, bias=True, dilation=1)

(2)參數(shù)的含義

  • in_channels(int) – 輸入信號的通道數(shù)
  • out_channels(int) – 卷積產(chǎn)生的通道數(shù)
  • kerner_size(int or tuple) - 卷積核的大小
  • stride(int or tuple,optional) - 卷積步長,即要將輸入擴大的倍數(shù)。
  • padding(int or tuple, optional) - 輸入的每一條邊補充0的層數(shù),高寬都增加2*padding
  • output_padding(int or tuple, optional) - 輸出邊補充0的層數(shù),高寬都增加padding
  • groups(int, optional) – 從輸入通道到輸出通道的阻塞連接數(shù)
  • bias(bool, optional) - 如果bias=True,添加偏置
  • dilation(int or tuple, optional) – 卷積核元素之間的間距

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數(shù)
    +關注

    關注

    3

    文章

    4363

    瀏覽量

    63773
  • python
    +關注

    關注

    56

    文章

    4822

    瀏覽量

    85782
  • pytorch
    +關注

    關注

    2

    文章

    808

    瀏覽量

    13668
收藏 2人收藏
  • jf_594916061
  • jf_968843641

評論

相關推薦

如何利用PyTorch API構建CNN?

, this becomes (10, 13, 13)  self.conv1 = nn.Conv2d(1, 10, 3)  # maxpool layer  # pool with kernel_size=2
發(fā)表于 07-16 18:13

Canny邊緣檢測器的詳細介紹以及Pytorch實現(xiàn)

= get_gaussian_kernel(k_gaussian, mu, sigma)self.gaussian_filter = nn.Conv2d(in_channels=1,out_channels=1,kernel_size
發(fā)表于 11-04 11:59

如何在PyTorch上學習和創(chuàng)建網(wǎng)絡模型呢?

, num_output_classes=10):super(Net, self).__init__() self.conv1 = nn.Conv2d(in_channels=1, out_channels
發(fā)表于 02-21 15:22

一層卷積能做啥?一層卷積可以做超分嗎?

= nn.PixelShuffle(s)  self.filter = nn.Conv2d(1,ssC,k,1,(k-1)//2,bias=False)  def forward(self, x
發(fā)表于 03-06 14:05

松下NN-5508 NN-5558 NN-6508 NN-7

松下NN-5508 NN-5558 NN-6508 NN-7508 NN-7558電腦式微波爐電路圖
發(fā)表于 02-13 22:50 ?1256次閱讀

松下NN-5550 NN-5540電腦式微波爐電路圖

松下NN-5550 NN-5540電腦式微波爐電路圖
發(fā)表于 02-13 22:51 ?3410次閱讀
松下<b class='flag-5'>NN</b>-5550 <b class='flag-5'>NN</b>-5540電腦式微波爐電路圖

松下NN-6808 NN-6858 NN-7808 NN-7

松下NN-6808 NN-6858 NN-7808 NN-7858電腦式微波爐電路圖
發(fā)表于 02-13 22:54 ?1396次閱讀
松下<b class='flag-5'>NN</b>-6808 <b class='flag-5'>NN</b>-6858 <b class='flag-5'>NN</b>-7808 <b class='flag-5'>NN</b>-7

PyTorch torch.nn與torch.nn.functional的區(qū)別

torch.nn pytorch中文文檔鏈接: torch.nn 在 __init__() 函數(shù)里定義,定義的是一個類: torch.nn.
的頭像 發(fā)表于 01-11 16:47 ?1531次閱讀

如何對圖片進行卷積計算

先導入torch和torch里的nn類,然后設置一個指定尺寸的隨機像素值的圖片,然后使用nn.conv2d函數(shù)進行卷積計算,然后建立全連接層,最后得到新的圖片的尺寸
的頭像 發(fā)表于 05-22 16:08 ?904次閱讀
如何對圖片進行卷積計算

NN1-24D05ANT NN1-24D05ANT

電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)NN1-24D05ANT相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有NN1-24D05ANT的引腳圖、接線圖、封裝手冊、中文資料、英文資料,NN1-24D05ANT真值表,
發(fā)表于 03-19 18:38
<b class='flag-5'>NN1-24D</b>05ANT <b class='flag-5'>NN1-24D</b>05ANT

NN1-24D15A3NT NN1-24D15A3NT

電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)NN1-24D15A3NT相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有NN1-24D15A3NT的引腳圖、接線圖、封裝手冊、中文資料、英文資料,NN1-24D15A3NT真值表,
發(fā)表于 03-19 18:39
<b class='flag-5'>NN1-24D</b>15A3NT <b class='flag-5'>NN1-24D</b>15A3NT

NN2-24S24A3NT NN2-24S24A3NT

電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)NN2-24S24A3NT相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有NN2-24S24A3NT的引腳圖、接線圖、封裝手冊、中文資料、英文資料,NN2-24S24A3NT真值表,
發(fā)表于 03-19 18:39
<b class='flag-5'>NN2</b>-24S24A3NT <b class='flag-5'>NN2</b>-24S24A3NT

NN2-15S15ANT NN2-15S15ANT

電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)NN2-15S15ANT相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有NN2-15S15ANT的引腳圖、接線圖、封裝手冊、中文資料、英文資料,NN2-15S15ANT真值表,
發(fā)表于 03-19 18:39
<b class='flag-5'>NN2</b>-15S15ANT <b class='flag-5'>NN2</b>-15S15ANT

NN2-12S05LNT NN2-12S05LNT

電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)NN2-12S05LNT相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有NN2-12S05LNT的引腳圖、接線圖、封裝手冊、中文資料、英文資料,NN2-12S05LNT真值表,
發(fā)表于 03-19 18:40
<b class='flag-5'>NN2</b>-12S05LNT <b class='flag-5'>NN2</b>-12S05LNT

NN2-24D15H6R3 NN2-24D15H6R3

電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)NN2-24D15H6R3相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有NN2-24D15H6R3的引腳圖、接線圖、封裝手冊、中文資料、英文資料,NN2-24D15H6R3真值表,
發(fā)表于 03-19 18:49
<b class='flag-5'>NN2-24D</b>15H6R3 <b class='flag-5'>NN2-24D</b>15H6R3

電子發(fā)燒友

中國電子工程師最喜歡的網(wǎng)站

  • 2931785位工程師會員交流學習
  • 獲取您個性化的科技前沿技術信息
  • 參加活動獲取豐厚的禮品