Почему выходной размер свертки CNN в руководстве по PyTorch DQN вычисляется с помощью `kernel_size -1`? - PullRequest
0 голосов
/ 26 февраля 2020

Исходя из моего понимания, выходной размер CNN для 1D составляет

output_size = (input_size - kernel_size + 2*padding)//stride + 1

См. Учебное пособие по PyTorch DQN . В этом уроке используется заполнение 0, что нормально. Тем не менее, он вычисляет выходной размер следующим образом:

        def conv2d_size_out(size, kernel_size = 5, stride = 2):
            return (size - (kernel_size - 1) - 1) // stride  + 1

Это ошибка выше или я что-то пропустил?

1 Ответ

2 голосов
/ 26 февраля 2020

Нет, это не ошибка, потому что

size - (kernel_size - 1) - 1 = size - kernel_size + 2 * 0

с 0 в качестве отступа
(это не код, это уравнение, извините за форматирование)
Я думаю, что учебник использует формулу для выходного размера из официального документа, который составляет

output_size = ((input_size + 2 * padding - dialation * (kernel_size - 1) - 1) // stride + 1

Официальный do c для conv1d

...