В соответствии с этим paper, форма выход N + H - 1
, N
вводится высота или ширина, высота H
является ядром или ширина. Это очевидный обратный процесс свертки. В этом tutorial приведена формула для расчета выходной формы свертки, которая равна (W−F+2P)/S+1
, W
- размер ввода, F
- размер фильтра, P
- размер прокладки, S
- шаг. Но в Tensorflow, есть тестовые примеры, как:Получение выходной формы деконволюции слоя с использованием tf.nn.conv2d_transpose в tensorflow
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]
Поэтому мы используем y_shape
, f_shape
и x_shape
, согласно формуле (W−F+2P)/S+1
для расчета размера обивки P
. От (12 - 3 + 2P)/2 + 1 = 6
мы получаем P = 0.5
, который не является целым числом. Как работает деконволюция в Tensorflow?
ответ о 'tf.nn.conv2d', как работает режим работы набивка для' tf.nn.conv2d_transpose'? 'tf.nn.conv2d_transpose' сделает выходной тензор большим, чем вход. – gaussclb