Как рассчитать окончательный размер после нескольких сверток с одинаковыми отступами? - PullRequest
0 голосов
/ 23 июня 2019

Учитывая, что у меня есть следующее:

s: stride
k: kernel size
i: input size
n: number of times a convolution layer was performed

Со слоем свертки, имеющим следующие параметры:

input = [b, i, i, c] (with batch size b and channel size c)
padding = 'SAME'
stride = s
kernel_size = k   

Есть ли математический способ для расчета конечного размера выходного?

Я могу сделать следующее, чтобы программно рассчитать окончательный размер вывода:

final_size = i
for _ in range(n):
    final_size = np.ceil(final_size / s)

1 Ответ

1 голос
/ 24 июня 2019

Да.ceil(ceil(x / n) / m) = ceil(x / (x * m)) (по крайней мере, для целых чисел n и m), поэтому оно должно быть просто final_size = np.ceil(i / (s ** n)).

...