2

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

正如我从阅读文档中了解到的那样,训练图像的大小作为参数发送到生成器类的构造函数,作为bottom_width和ch。这是 32x32 的代码。

类生成器(chainer.Chain):

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

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

4

1 回答 1

1

您可以通过了解 的行为来计算它Deconvolution2D。在net.py, 3 Deconvolution2D 层 ( self.dc1, self.dc2, self.dc3) 是用stride=2( 的第 4 个参数L.Deconvolution2D) 定义的,它使输入高度/宽度加倍。

结果,输出大小将为bottom_size * 2^3,当 时为 32 bottom_size=4

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

输入输出大小关系详情请参考官方文档。

于 2018-12-26T06:49:15.440 回答