修改 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.dc1
、self.dc2
、self.dc3
)定义为stride=2
(L.Deconvolution2D
的第4个参数),将输入加倍 height/width.
因此,输出大小将为 bottom_size * 2^3
,当 bottom_size=4
时为 32。
因此,例如,如果您想获得 64x64 图像,您可以为生成器和鉴别器设置 bottom_size=8
(但您需要 64x64 图像作为真实数据,而不是 32x32 图像的 cifar-100)。
具体输入输出大小关系请参考官方文档
我正在使用 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.dc1
、self.dc2
、self.dc3
)定义为stride=2
(L.Deconvolution2D
的第4个参数),将输入加倍 height/width.
因此,输出大小将为 bottom_size * 2^3
,当 bottom_size=4
时为 32。
因此,例如,如果您想获得 64x64 图像,您可以为生成器和鉴别器设置 bottom_size=8
(但您需要 64x64 图像作为真实数据,而不是 32x32 图像的 cifar-100)。
具体输入输出大小关系请参考官方文档