Изменение размера входных изображений для модели Chainer DCGAN - PullRequest
0 голосов
/ 26 декабря 2018

Я использую файл примера Chainer DCGAN, найденный в https://github.com/chainer/chainer/blob/master/examples/dcgan/train_dcgan.py.Он отлично работает для изображений 32x32, но для других разрешений README.md дает указание изменить сетевую архитектуру в net.py.

Насколько я понимаю из чтения документации, размер обучающих изображений отправляется в качестве параметра конструктору в класс Generator, как bottom_width, и ch.Вот код для 32x32.

class Generator(chainer.Chain):

    def __init__(self, n_hidden, bottom_width=4, ch=512, wscale=0.02):

Я запутался в том, как это переводится в 32x32, и как изменить это в других разрешениях.Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 26 декабря 2018

Вы можете рассчитать это, понимая поведение Deconvolution2Dnet.py 3 слой Deconvolution2D (self.dc1, self.dc2, self.dc3) определяется с stride=2 (4-й аргумент L.Deconvolution2D), который удваивает высоту ввода /width.

В результате размер вывода будет bottom_size * 2^3, что приведет к 32 при bottom_size=4.

Так, например, если вы хотите получить изображения размером 64x64, вы можете установить bottom_size=8 как для генератора, так и для дискриминатора (но вам нужны 64x64 изображения в качестве реальных данных, а не cifar-100, который составляет 32x32 изображения).

Пожалуйста, обратитесь к официальному документу для получения подробной информации о соотношении размера ввода-вывода.

...