Obtener la forma de salida de la capa de deconvolución usando tf.nn.conv2d_transpose en tensorflow
De acuerdo a estopapel, la forma de salida esN + H - 1
, N
es la altura o ancho de entrada,H
es la altura o el ancho del grano. Este es un proceso inverso obvio de convolución. Estatutorial da una fórmula para calcular la forma de salida de convolución que es(W−F+2P)/S+1
, W
- tamaño de entrada,F
- tamaño del filtro,P
- tamaño de relleno,S
- zancada Pero enTensorflow, hay casos de prueba como:
strides = [1, 2, 2, 1]
# Input, output: [batch, height, width, depth]
x_shape = [2, 6, 4, 3]
y_shape = [2, 12, 8, 2]
# Filter: [kernel_height, kernel_width, output_depth, input_depth]
f_shape = [3, 3, 2, 3]
Entonces usamosy_shape
, f_shape
yx_shape
, de acuerdo con la fórmula(W−F+2P)/S+1
para calcular el tamaño del rellenoP
. De(12 - 3 + 2P) / 2 + 1 = 6
, obtenemosP = 0.5
, que no es un entero. ¿Cómo funciona la deconvolución en Tensorflow?