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])

 

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