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

完善資料讓更多小伙伴認識你,還能領(lǐ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 。

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

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

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,可以設(shè)為1個int型數(shù)或者一個(int, int)型的tuple。

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

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

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

**groups(卷積核個數(shù)):**通常來說,卷積個數(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)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4331

    瀏覽量

    62622
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84690
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    808

    瀏覽量

    13226
收藏 人收藏

    評論

    相關(guān)推薦

    [基于GD32F350RB的音頻識別器] 3. CMSIS-NN神經(jīng)網(wǎng)絡(luò)配置解析

    的模型輸出,記錄重要的參數(shù)save到另外的程序,轉(zhuǎn)換到輸入的數(shù)組參數(shù),以便于使用。需要如下定義,#define CONV2_BIAS {55,50,34,43,-37,35,-21,10,35
    發(fā)表于 09-21 11:34

    如何利用PyTorch API構(gòu)建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)絡(luò)模型呢?

    , 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

    長虹NN5099K彩電電路圖

    長虹NN5099K彩色電視機電路圖,長虹NN5099K彩電圖紙,長虹NN5099K原理圖。
    發(fā)表于 05-08 13:26 ?54次下載
    長虹<b class='flag-5'>NN</b>5099K彩電電路圖

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

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

    松下NN-5508JPQ NN-5558JPQ微波爐電路圖

    松下NN-5508JPQ NN-5558JPQ微波爐電路圖
    發(fā)表于 02-13 22:51 ?1260次閱讀
    松下<b class='flag-5'>NN</b>-5508JPQ <b class='flag-5'>NN</b>-5558JPQ微波爐電路圖

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

    松下NN-5550 NN-5540電腦式微波爐電路圖
    發(fā)表于 02-13 22:51 ?3278次閱讀
    松下<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 ?1353次閱讀
    松下<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

    松下NN-9559 NN-9850微波爐電路圖

    松下NN-9559 NN-9850微波爐電路圖
    發(fā)表于 02-13 22:55 ?1287次閱讀
    松下<b class='flag-5'>NN</b>-9559 <b class='flag-5'>NN</b>-9850微波爐電路圖

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

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

    如何對圖片進行卷積計算

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

    0參數(shù)量+0訓(xùn)練,3D點云分析方法Point-NN刷新多項SOTA

    首先,我們可以通過插入簡單的線性層,來構(gòu)建 Point-NN 的參數(shù)化網(wǎng)絡(luò),Point-PN。由于 Point-NN 具有強大的非參數(shù)基礎(chǔ),所構(gòu)建出的 Point-PN 僅需要少量可學習參數(shù)就可以表現(xiàn)出優(yōu)秀的 3D 分類和分割性
    的頭像 發(fā)表于 07-19 16:29 ?674次閱讀
    0參數(shù)量+0訓(xùn)練,3<b class='flag-5'>D</b>點云分析方法Point-<b class='flag-5'>NN</b>刷新多項SOTA

    NN1-XXXXXH6 系列 NN1-XXXXXH6 系列

    電子發(fā)燒友網(wǎng)為你提供()NN1-XXXXXH6 系列相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有NN1-XXXXXH6 系列的引腳圖、接線圖、封裝手冊、中文資料、英文資料,NN1-XXXXXH6 系列真值表,
    發(fā)表于 09-22 16:44
    <b class='flag-5'>NN</b>1-XXXXXH6 系列 <b class='flag-5'>NN</b>1-XXXXXH6 系列