Почему выходная форма не умножается по каналам в сверточных слоях?Python

Программы на Python
Ответить
Anonymous
 Почему выходная форма не умножается по каналам в сверточных слоях?

Сообщение Anonymous »

Код: Выделить всё

# First convolutional layer: input channels = 1, output channels = 32, kernel size = 5x5, padding = 2 (SAME)
self.conv1 = nn.Conv2d(in_channels=1, out_channels=32, kernel_size=5, stride=1, padding=2)
# First pooling layer: max pooling, kernel size = 2x2, stride = 2
self.pool1 = nn.MaxPool2d(kernel_size=2, stride=2)

# Second convolutional layer: input channels = 32, output channels = 64, kernel size = 5x5, padding = 2 (SAME)
self.conv2 = nn.Conv2d(in_channels=32, out_channels=64, kernel_size=5, stride=1, padding=2)
# Second pooling layer: max pooling, kernel size = 2x2, stride = 2
self.pool2 = nn.MaxPool2d(kernel_size=2, stride=2)
Вопрос: почему результат после второго слоя свертки не равен
14 * 14 * 32 * 64? Для 32-канального ввода каждое сверточное ядро ​​работает на одном канале, что приводит к 64 различным результатам. Разве 32 канала не следует перемножить?
Я получил такие ответы: для каждой позиции ввода 14 * 14, скалярное произведение ядра 5532 с областью ввода 5532 вы получите одноканальный выход 14*14. Разве размер ядра не 5*5?

Подробнее здесь: https://stackoverflow.com/questions/791 ... nal-layers
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»