tf.keras.layers.Conv2DTranspose中反捲積輸入和輸出關係

  函數申明:https://tensorflow.google.cn/api_docs/python/tf/keras/layers/Conv2DTranspose

tf.keras.layers.Conv2DTranspose(
    filters, kernel_size, strides=(1, 1), padding='valid', output_padding=None,
    data_format=None, dilation_rate=(1, 1), activation=None, use_bias=True,
    kernel_initializer='glorot_uniform', bias_initializer='zeros',
    kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None,
    kernel_constraint=None, bias_constraint=None, **kwargs
)

(1)當沒有設置output_padding時:

# 當padding="valid"時
new_rows = (rows - 1) * strides[0] + kernel_size[0]
new_cols = (cols - 1) * strides[1] + kernel_size[1]

# 當padding="same"時
new_rows = rows * strides[0]
new_cols = cols * strides[1]

(2)當設置output_padding時:

# padding="valid"時,padding=[0,0]
# padding="same"時,padding=[1,1]
# 注意output_padding的大小小於strides
new_rows = ((rows - 1) * strides[0] + kernel_size[0] - 2 * padding[0] +
output_padding[0])
new_cols = ((cols - 1) * strides[1] + kernel_size[1] - 2 * padding[1] +
output_padding[1])

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章