Чтобы понять это, вы должны знать, как работает оператор свертки для CNN. nn.Conv2d(512, 512, kernel_size=3, padding=1)
означает, что входное изображение для этой свертки имеет 512 каналов и что на выходе после свертки также будет 512 каналов. Входное изображение будет свернуто с ядром размером 3x3, которое перемещается как скользящее окно. Наконец, padding=1
означает, что перед применением свертки мы симметрично добавляем нули к краям входной матрицы.
В приведенном вами примере вы можете подумать, что 512 - это глубина, а 7x7 - это ширина и высота, полученные путем применения нескольких сверток. Представьте, что у нас есть изображение с некоторой шириной и высотой, и мы скармливаем его свертке, в результате размер будет
owidth = floor(((width + 2*padW - kW) / dW) + 1)
oheight = floor(((height + 2*padH - kH) / dH) + 1)
где height
и width
- исходные размеры, padW
и padH
- высота и ширина (по горизонтали и вертикали) отступы, kW
и kH
- размеры ядра, а dW
и dH
- ширина и высота (по горизонтали и вертикали) пикселей, которые перемещает ядро ( т.е. если это dW=1
, сначала ядро будет в пикселе (0,0), а затем переместится в (1,0))
Обычно первый оператор свертки в CNN выглядит так: nn.Conv2d(3, D, kernel_size=3, padding=1)
, потому что исходное изображение имеет 3 входных канала (RGB). Предполагая, что входное изображение имеет размер 256x256x3 пикселей, если мы применим оператор, как определено ранее, результирующее изображение будет иметь ту же ширину и высоту, что и входное изображение, но его глубина теперь равна D. Аналогично, если мы определим свертку как c = nn.Conv2d(3, 15, kernel_size=25, padding=0, stride=5)
с kernel_size=25
, без заполнения во входном изображении и с stride=5
(dW=dH=5
, что означает, что ядро перемещается на 5 пикселей каждый раз, если мы находимся в (0,0), тогда оно перемещается в (5,0), пока мы не дойдем до конца изображения по оси x, затем он перемещается в (0,5) -> (5,5) -> (5,15), пока снова не достигнет конца) результирующее выходное изображение будет иметь размер 47x47xD
person
Manuel Lagunas
schedule
13.02.2018