Получение формы вывода слоя деконволюции с использованием tf.nn.conv2d_transpose в tenorflow
Согласно этомубумага, выходная формаN + H - 1
, N
высота или ширина ввода,H
высота ядра или ширина. Это очевидный обратный процесс свертки. эторуководство дает формулу для расчета выходной формы свертки, которая(W−F+2P)/S+1
, W
- размер ввода,F
- размер фильтра,P
- размер подкладки,S
- шагать. Но в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?