生成器如何获得输入噪声 z?
How can generator get input noise z?
您好,我正在查看这个 GAN 实现代码。 code here
我的问题是生成器 class 在定义 class 生成器时没有输入参数(来自 link 的#38)
但是在训练时,生成器获取输入 z(link 中的#141)。
我查看了 nn.Module class 是 class Generator 的父级,但我找不到噪声 z 的输入参数。有人可以帮忙吗?
class Generator(nn.Module): #38
def __init__(self):
super(Generator, self).__init__()
def block(in_feat, out_feat, normalize=True):
layers = [nn.Linear(in_feat, out_feat)]
if normalize:
layers.append(nn.BatchNorm1d(out_feat, 0.8))
layers.append(nn.LeakyReLU(0.2, inplace=True))
return layers
self.model = nn.Sequential(
*block(opt.latent_dim, 128, normalize=False),
*block(128, 256),
*block(256, 512),
*block(512, 1024),
nn.Linear(1024, int(np.prod(img_shape))),
nn.Tanh()
)
def forward(self, z):
img = self.model(z)
img = img.view(img.size(0), *img_shape)
return img
generator = Generator() #88
gen_imgs = generator(z) #141
我尝试在 pytorch 文档中寻找 nn.Module、variable(),但仍然找不到我想要的。
考虑引用的每一行(38、88 和 141):
- 第 38 行是 class 的定义,通过将
nn.Module
放在方括号中,它声明从 class nn.Module 继承 class Generator
(这是定义您的常用方法自己的神经网络)。
- 在第 88 行创建了 class 生成器的实例——对于参数,它需要
__init__
括号内的所有内容(第 39 行),除了 self
,这就是为什么括号第 88 行是空的。
- 并且在第 141 行调用了
genearator
,此处的行为由方法 forward
(第 58 行)定义,并且有一个参数要传递 -- z
。
同样,第 88 行创建了一个实例,第 141 行调用了实例的 forward
方法。
您好,我正在查看这个 GAN 实现代码。 code here
我的问题是生成器 class 在定义 class 生成器时没有输入参数(来自 link 的#38) 但是在训练时,生成器获取输入 z(link 中的#141)。 我查看了 nn.Module class 是 class Generator 的父级,但我找不到噪声 z 的输入参数。有人可以帮忙吗?
class Generator(nn.Module): #38
def __init__(self):
super(Generator, self).__init__()
def block(in_feat, out_feat, normalize=True):
layers = [nn.Linear(in_feat, out_feat)]
if normalize:
layers.append(nn.BatchNorm1d(out_feat, 0.8))
layers.append(nn.LeakyReLU(0.2, inplace=True))
return layers
self.model = nn.Sequential(
*block(opt.latent_dim, 128, normalize=False),
*block(128, 256),
*block(256, 512),
*block(512, 1024),
nn.Linear(1024, int(np.prod(img_shape))),
nn.Tanh()
)
def forward(self, z):
img = self.model(z)
img = img.view(img.size(0), *img_shape)
return img
generator = Generator() #88
gen_imgs = generator(z) #141
我尝试在 pytorch 文档中寻找 nn.Module、variable(),但仍然找不到我想要的。
考虑引用的每一行(38、88 和 141):
- 第 38 行是 class 的定义,通过将
nn.Module
放在方括号中,它声明从 class nn.Module 继承class Generator
(这是定义您的常用方法自己的神经网络)。 - 在第 88 行创建了 class 生成器的实例——对于参数,它需要
__init__
括号内的所有内容(第 39 行),除了self
,这就是为什么括号第 88 行是空的。 - 并且在第 141 行调用了
genearator
,此处的行为由方法forward
(第 58 行)定义,并且有一个参数要传递 --z
。
同样,第 88 行创建了一个实例,第 141 行调用了实例的 forward
方法。