TensorFlow中padding的SAME和VALID兩種方式有何異同?

時間 2021-05-30 02:41:46

1樓:毛路安

TensorFlow 版本:2.1.0

Anaconda 2019.10

在TensorFlow2.1.0版本中,padding的same卷積後尺寸是否不變由步長strides是否大於1決定。

對於轉置卷積和卷積,padding的『same』與『valid』中,輸入高寬(i),輸出高寬(o),步長(s),卷積核的高寬(k)(設定高寬相等都為k)滿足以下關係:

卷積:padding = 'same'時,o = i/s 向上取整

padding = 'valid'時, o = (i-k)/s + 1 向下取整

轉置卷積:

padding = 'same'時,o = i * s

pading = 'valid' 時, o = (i-1)*s+k

使用jupyter進行驗證:

import

tensorflow

astf

from

tensorflow.keras

import

layers

gpus=tf

.config

.experimental

.list_physical_devices

('GPU')if

gpus

:try

:for

gpuin

gpus:tf

.config

.experimental

.set_memory_growth

(gpu

,True

)except

RuntimeErrorase

:print(e

)# 卷積演算法時, padding = 『same』 o = i/s 向上取整a=

tf.random

.normal([4

,64,64

,3]model_1

=layers

.Conv2D(10

,kernel_size=3

,strides=2

,padding

='same')b

=model_1(a

)display(b

.shape

)# 卷積演算法時, padding = 『valid』 o = (i-k)/s + 1 向下取整

model_2

=layers

.Conv2D(10

,3,2

,padding

='same')c

=model_2(b

)dispaly(c

.shape

)# 轉置卷積演算法時, padding = 'valid' o = (i-1)*s + k

model_3

=layers

.Conv2DTranspose(10

,3,2

,padding

='valid')d

=model(c

)display(d

.shape

)# 轉置卷積演算法時, padding = 『same』 o = i * s

model_4

=layers

.Conv2DTranspose(10

,3,2

,padding

='same')e

=model_4(d

)display(e

.shape

)具體結果如下:

2樓:bjnanhai

唐突做一下解釋:在卷積核移動逐漸掃瞄整體圖時候,因為步長的設定問題,可能導致剩下未掃瞄的空間不足以提供給卷積核的,大小掃瞄比如有圖大小為5*5,卷積核為2*2,步長為2,卷積核掃瞄了兩次後,剩下乙個元素,不夠卷積核掃瞄了,這個時候就在後面補零,補完後滿足卷積核的掃瞄,這種方式就是same。如果說把剛才不足以掃瞄的元素位置拋棄掉,就是valid方式。

Tensorflow 中 Embedding 層為什麼要用矩陣乘來實現?

一棵有思想的韭菜 我的猜想是這樣的 用one hot matrix 乘 embedding matrix來選擇,對與GPU來說是非常高效的,如果用CPU就會慢很多,但是如果這個實現用的是你說的index定址,這就實打實的是線性時間來,有GPU也無法加速。 Chan Yu 引用一下官方1.14版本的文...

TensorFlow中的onehot有什麼作用,為什麼要使用onehot向量呢?

鄭文勳 考慮多類情況。非onehot,標籤是類似0 1 2 3.n這樣。而onehot標籤則是顧名思義,乙個長度為n的陣列,只有乙個元素是1.0,其他元素是0.0。例如在n為4的情況下,標籤2對應的onehot標籤就是 0.0 0.0 1.0 0.0 使用onehot的直接原因是現在多分類cnn網路...

tensorflow裡面name scope, variable scope等如何理解?

已登出 不逼逼,貼原始碼和注釋 還不懂你打死我 coding utf 8 import osimport sysimport time import reimport math import numpy asnp import pandas aspd import tensorflow astf p...