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

У меня есть модель дискриминатора и генератора в GAN, и я хочу изменить размеры ядра, чтобы они были больше.Входное изображение поступает в 64x64.На данный момент ядра имеют размер 4x4 (для ks установлено значение 4):

 self.main = nn.Sequential(
        # input is (nc) x 64 x 64
        nn.Conv2d(nc, self.ndf, ks, 2, 1, bias=False),
        nn.LeakyReLU(0.2, inplace=True),
        # state size. (self.ndf) x 32 x 32
        nn.Conv2d(self.ndf, self.ndf * 2, ks, 2, 1, bias=False),
        nn.BatchNorm2d(self.ndf * 2),
        nn.LeakyReLU(0.2, inplace=True),
        # state size. (self.ndf*2) x 16 x 16
        nn.Conv2d(self.ndf * 2, self.ndf * 4, ks, 2, 1, bias=False),
        nn.BatchNorm2d(self.ndf * 4),
        nn.LeakyReLU(0.2, inplace=True),
        # state size. (self.ndf*4) x 8 x 8
        nn.Conv2d(self.ndf * 4, self.ndf * 8, ks, 2, 1, bias=False),
        nn.BatchNorm2d(self.ndf * 8),
        nn.LeakyReLU(0.2, inplace=True),
        # state size. (self.ndf*8) x 4 x 4
        nn.Conv2d(self.ndf * 8, 1, ks, 1, 0, bias=False),
        nn.Sigmoid()
    )

Если я хочу изменить его на 5 или 3, могу ли я просто изменить ks на 5 или 3?Конечно, есть проблема, потому что если вы продолжите делить размер изображения на два, конечный слой будет иметь размер 4х4, поэтому он не будет помещаться поверх него должным образом.

...