欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PyTorch中反卷積的用法詳解

 更新時(shí)間:2019年12月30日 15:16:48   作者:月牙眼的樓下小黑  
今天小編就為大家分享一篇PyTorch中反卷積的用法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

pytorch中的 2D 卷積層 和 2D 反卷積層 函數(shù)分別如下:

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

我不禁有疑問:

問題1: 兩個(gè)函數(shù)的參數(shù)為什么幾乎一致呢?

問題2: 反卷積層中的 output_padding是什么意思呢?

問題3: 反卷積層如何計(jì)算input和output的形狀關(guān)系呢?

看了中文文檔后,我得不出答案,看了英文文檔,才弄明白了。花費(fèi)了一個(gè)下午的時(shí)間去研究這個(gè)問題,值得用此文紀(jì)錄一下。

我們知道,在卷積層中,輸入輸出的形狀關(guān)系為:

o = [ (i + 2p - k)/s ] +1 (1)

其中:

O : 為 output size

i: 為 input size

p: 為 padding size

k: 為kernel size

s: 為 stride size

[] 為下取整運(yùn)算

(1) 當(dāng) S=1 時(shí)

若 s等于1,則公式(1)中的取整符號消失,o 與 i 為 一一對應(yīng) 的關(guān)系。 我們有結(jié)論:

如果卷積層函數(shù)和反卷積層函數(shù)的 kernel_size, padding size參數(shù)相同(且 stride= 1),設(shè)反卷基層的輸入輸出形狀為 i' 和 o', 卷積層的輸入輸出形狀i和o, 則它們?yōu)?交叉對應(yīng) 的關(guān)系,即:

i = o'
o = i'

為回答問題3, 我們將上述關(guān)系代入公式中,即:

i' = o' + 2p - k +1

已知 i', 即可推出 o':

o' = i' - 2p + k - 1 (2)

摘兩個(gè)例子:

(2) 當(dāng) S>1 時(shí)

若 S>1 , 則公式(1)中的取整符號不能消去,o 與 i 為 多對1 的關(guān)系。 效仿 S=1時(shí)的情形, 我們有結(jié)論:

如果卷積層函數(shù)和反卷積層函數(shù)的 kernel_size, padding size參數(shù)相同(且 stride>1),設(shè)反卷基層的輸入輸出形狀為 i' 和 o', 卷積層的輸入輸出形狀i和o,

i' = [ (o' + 2p - k)/s ] +1

已知 i', 我們可以得出 s 個(gè) o' 解:

o'(0) = ( i' - 1) x s + k - 2p
o'(1) = o'(1) + 1
o'(2) = o'(1) + 2
...
o'(s-1) = o'(1) + s-1

即:

o'(n) =o'(1) + n = ( i' - 1) x s + k - 2p + n,
n = {0, 1, 2...s-1}

為了確定唯一的 o' 解, 我們用反卷積層函數(shù)中的ouput padding參數(shù)指定公式中的 n 值。這樣,我們就回答了問題(2)。

摘一個(gè)簡單的例子:

(3) 實(shí)驗(yàn)驗(yàn)證

給出一小段測試代碼,改變各個(gè)參數(shù)值,運(yùn)行比較來驗(yàn)證上面得出的結(jié)論,have fun~.

from torch import nn
from torch.nn import init
from torch.autograd import Variable

dconv = nn.ConvTranspose2d(in_channels=1, out_channels= 1, kernel_size=2, stride=2, padding=1,output_padding=0, bias= False)
init.constant(dconv.weight, 1)
print(dconv.weight)

input = Variable(torch.ones(1, 1, 2, 2))
print(input)
print(dconv(input))

以上這篇PyTorch中反卷積的用法詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一文解密Python中的垃圾回收

    一文解密Python中的垃圾回收

    我們知道,python?是一種高級編程語言,它提供了自動內(nèi)存管理的功能,即垃圾回收機(jī)制,所以本文就來聊聊python的垃圾回收機(jī)制是如何實(shí)現(xiàn)的以及具體是使用,感興趣的可以了解下
    2023-09-09
  • Python基于百度AI的文字識別的示例

    Python基于百度AI的文字識別的示例

    本篇文章主要介紹了Python基于百度AI的文字識別的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • 詳解python中字典的循環(huán)遍歷的兩種方式

    詳解python中字典的循環(huán)遍歷的兩種方式

    本篇文章主要介紹了python中字典的循環(huán)遍歷的兩種方式 ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • 對django后臺admin下拉框進(jìn)行過濾的實(shí)例

    對django后臺admin下拉框進(jìn)行過濾的實(shí)例

    今天小編就為大家分享一篇對django后臺admin下拉框進(jìn)行過濾的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python繪制餅圖和直方圖的方法

    python繪制餅圖和直方圖的方法

    這篇文章主要為大家詳細(xì)介紹了python繪制餅圖和直方圖的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Django 過濾器匯總及自定義過濾器使用詳解

    Django 過濾器匯總及自定義過濾器使用詳解

    這篇文章主要介紹了Django 過濾器匯總及自定義過濾器使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python中類的初始化特殊方法

    Python中類的初始化特殊方法

    本文給大家介紹一下Python中類才初始化時(shí)候的特殊方法,通過實(shí)例給大家做了分析,一起來學(xué)習(xí)下。
    2017-12-12
  • scrapy爬蟲實(shí)例分享

    scrapy爬蟲實(shí)例分享

    這篇文章主要介紹了scrapy爬蟲實(shí)例分享,分享了四則Python爬蟲實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • pandas 實(shí)現(xiàn)將重復(fù)表格去重,并重新轉(zhuǎn)換為表格的方法

    pandas 實(shí)現(xiàn)將重復(fù)表格去重,并重新轉(zhuǎn)換為表格的方法

    下面小編就為大家分享一篇pandas 實(shí)現(xiàn)將重復(fù)表格去重,并重新轉(zhuǎn)換為表格的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Java Spring項(xiàng)目國際化(i18n)詳細(xì)方法與實(shí)例

    Java Spring項(xiàng)目國際化(i18n)詳細(xì)方法與實(shí)例

    這篇文章主要介紹了Java Spring項(xiàng)目國際化詳細(xì)方法與實(shí)例,需要的朋友可以參考下
    2020-03-03

最新評論