cycleGAN中model.network略解

作用:解释网络结构(包括生成器、判决器)以及归一化层、初始化方法、优化方法调度程序(学习率政策),和GAN的目标(损失函数)( vanilla,lsgan,wgangp)
定义类
class Identity(nn.Module):
前馈整个网络结构
def forward(self, x): return x
返回一个归一化层
参数:norm_type (str):归一化层的名字(batch|instance|none)
def get_norm_layer(norm_type='instance'):

返回一个学习率表?
参数:optimizer --网络的优化器
opt --存储所有的实验指标;
例如:·例如“linear"模式下,对于前<opt.n_epoches>轮数的训练保持相同的学习率,然后线性的在接下来<opt.n_epoches>轮训练中减小学习率,直到变为0;对于其他的模式(step, plateau, and cosine)采用pytorch默认的优化方法(动态调参)?

初始化网络权重
提供了三种不同的权重初始化方式(normal | xavier | kaiming | orthogonal)
def init_weights(net, init_type='normal', init_gain=0.02):

初始化网络(调用上面的初始化权重来初始化网络)1.确定网络用到的cpu/gpu 2初始化网络权重
def init_net(net, init_type='normal', init_gain=0.02, gpu_ids=[]):

构造一个生成器(调用上面的初始化网络函数构造一个生成器)(主要有resnet_9blocks resnet_6blocks unet_128 unet_256)
def define_G(input_nc, output_nc, ngf, netG, norm='batch', use_dropout=False, init_type='normal', init_gain=0.02, gpu_ids=[]):

构造一个判决器
def define_D(input_nc, ndf, netD, n_layers_D=3, norm='batch', init_type='normal', init_gain=0.02, gpu_ids=[]):

目标损失函数类
class GANLoss(nn.Module):

类初始化函数:
参数:gan_mode:目标损失函数的三种类型:vanilla, lsgan, and wgangp
(bool)target_real_label:真实图片的标签(1)
(bool)target_real_label:假图片的标签(0)

def __init__(self, gan_mode, target_real_label=1.0, target_fake_label=0.0):

上一篇:动手学pytorch-Batch Norm


下一篇:简单数据分布分析及python实现