keras的Conv2DTranspose逆卷積

2021-10-18 06:04:31 字數 1063 閱讀 8242

學gan,逆卷積過程中大小變化到底是怎麼變的?和步長有關係嗎?

先看卷積時的情況

padding = 「valid」輸入和輸出大小關係如下:

輸出大小等於輸入大小減去濾波器(卷積核)大小加上1,最後再除以步長(f為濾波器的大小,s是步長大小)

padding = 「same」輸入和輸出大小關係如下:

即輸出大小等於輸入大小除以步長向上取整,s是步長大小;

== 那逆卷積就是這個過程的逆 ==

下面來舉個栗子

對於輸入大小為7x7,輸入通道數為256的,我們要求輸出大小仍然為7x7,進行如下逆卷積操作:

則逆卷積輸出大小w*w為:

⌈w/1⌉=7,則w=7

那麼strides=(2,2)呢?

⌈w/2⌉=7,則w『=14(輸出大小翻倍,變成14x14)

(輸出的通道數是由自己任意指定的)

那網上還有流傳這樣的公式

conv2dtranspose輸出計算

輸入矩陣為:nxn

卷積核大小,kernel_size:fxf

步長strides:s

邊界擴充padding的值:p

則,輸出大小w:

w =(

n−1)

∗s−2

p+fw=(n−1)∗s−2p+f

w=(n−1

)∗s−

2p+f

為什麼不用這個計算逆卷積之後的大小呢?

這個公式也是對的,這個需要知道padding 0的個數。一般我們利用向上求整公式計算最後影象大小,然後利用上述這個公式計算padding 0 的個數

參考:

keras 一維序列 conv1d卷積的使用

keras中conv1d從 匯入?from keras.layers import conv1d的輸入維度是怎樣的?一般來說,輸入資料如果是7500x128列的二維表形式的話,需要加入乙個空間維度,如下 x np.expand dims x,axis 2 表示是是增加的維度是在第三個維度上 resh...

imfilter和conv2的關係

首先定義兩個矩陣 a 1 2 3 5 4 7 9 5 1 4 6 7 5 4 3 7 8 7 5 1 a矩陣取5 4 b 1 5 4 3 6 8 1 5 7 b矩陣如多數模板一樣取3 3 然後定義乙個高斯模板 gaussian fspecial gaussian 3,1.8 gaussian 0.0...

Matlab函式 conv2的用法

matlab函式conv2的用法 c conv2 a,b c conv2 hcol,hrow,a c conv2 shape 說明 對於 c conv2 a,b conv2 的算矩陣 a 和 b 的卷積,若 ma,na size a mb,nb size b 則 size c ma mb 1,na ...