我正在使用https://github.com/chainer/chainer/blob/master/examples/dcgan/train_dcgan.py上的Chainer DCGAN示例文件。它适用于32x32图像,但对于其他分辨率,README.md指示修改net.py中的网络体系结构。
从阅读文档可以理解,训练图像的大小作为参数发送给Generator类的构造函数,即bottom_width和ch。这是32x32的代码。
类Generator(chainer.Chain):
定义__init __(self,n_hidden,bottom_width = 4,ch = 512,wscale = 0.02):
我对如何将其转换为32x32以及如何将其修改为其他分辨率感到困惑。任何帮助将不胜感激。
最佳答案
您可以通过了解Deconvolution2D
的行为来进行计算。
在net.py
中,使用self.dc1
(self.dc2
的第4个参数)定义3个Deconvolution2D层(self.dc3
,stride=2
,L.Deconvolution2D
),这会使输入高度/宽度加倍。
结果,输出大小将为bottom_size * 2^3
,当bottom_size=4
时结果为32。
因此,例如,如果要获取64x64图像,则可以为生成器和鉴别器都设置bottom_size=8
(但是您需要64x64图像作为真实数据,而不是cifar-100才是32x32图像)。
请参阅官方文档以了解投入产出大小关系的详细信息。
chainer.functions.deconvolution_2d
关于python-3.x - 为Chainer DCGAN模型修改输入图像的大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53928235/