我正在使用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.dc1self.dc2的第4个参数)定义3个Deconvolution2D层(self.dc3stride=2L.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/

10-12 21:33