修改 Chainer DCGAN 模型的输入图像大小

Modifying size of input images for Chainer DCGAN model

我正在使用 https://github.com/chainer/chainer/blob/master/examples/dcgan/train_dcgan.py 中的 Chainer DCGAN 示例文件。它适用于 32x32 图像,但对于其他分辨率,README.md 指示修改 net.py 中的网络架构。

根据我阅读文档的理解,训练图像的大小作为参数发送到生成器 class 的构造函数,如 bottom_width 和 ch。这是 32x32 的代码。

class 生成器(chainer.Chain):

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

我对这如何转换为 32x32 以及如何将其修改为其他分辨率感到困惑。任何帮助将不胜感激。

你可以通过了解Deconvolution2D的行为来计算它。 在net.py中,3个Deconvolution2D层(self.dc1self.dc2self.dc3)定义为stride=2L.Deconvolution2D的第4个参数),将输入加倍 height/width.

因此,输出大小将为 bottom_size * 2^3,当 bottom_size=4 时为 32。

因此,例如,如果您想获得 64x64 图像,您可以为生成器和鉴别器设置 bottom_size=8(但您需要 64x64 图像作为真实数据,而不是 32x32 图像的 cifar-100)。

具体输入输出大小关系请参考官方文档