學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 ...