Что означает заполнение Pytorch по умолчанию в Conv2D? - PullRequest
0 голосов
/ 20 января 2020

В документации Pytorch для состояний MaxPool2D:

заполнение (int или tuple, необязательно) - заполнение нулями, добавленное к обеим сторонам ввода. По умолчанию: 0

Означает ли это, что значения по умолчанию для заполнения будут 0 или заполнение не будет?

В моем коде: nn.Conv2d(input_channels, output_channels, kernel_size, stride) я не передал никакого параметра заполнения, и когда я его печатал, он показывает следующее

(0): Conv2d (4, 8, kernel_size = (3, 3), stride = (1, 1), padding = (2, 2))

Итак, я предполагаю, что по умолчанию добавляется заполнение для соответствия входного размера значениям 0.

Теперь, если это так, то как я могу отключить его и / или добавить другое значение заполнения?

1 Ответ

3 голосов
/ 20 января 2020

Означает ли это, что значения по умолчанию для заполнения будут равны 0 или заполнение не будет?

Это означает, что заполнения вообще не будет (поскольку параметр padding задает размер отступа для каждого измерения и по умолчанию он равен padding=0, то есть (0, 0)).

>>> conv = torch.nn.Conv2d(4, 8, kernel_size=(3, 3), stride=(1, 1))
>>> conv.padding
(0, 0)

Сверточный слой представляет собой агности c от входной высоты и ширины, он ожидает, что вход будет иметь 4 канала (в этом конкретном примере). Высота и вес входных данных вычисляются после того, как вы передаете входные данные, и если размер изображения меньше размера ядра, он выдаст ошибку - он не будет автоматически дополнять ввод в соответствии с размером. Было бы полезно, если бы вы опубликовали полный код, чтобы увидеть, откуда происходит заполнение.

...