学习内容:
一、 parser = argparse.ArgumentParser()
parser.add_argument("--n_epochs", type=int, default=200, help="number of epochs of training")
加入类似以上形式的代码,是对在parser中增添参数
在后面可以直接使用,如同一个类增加的属性一样
img_shape = (opt.channels, opt.img_size, opt.img_size)
channel是指图像的通道数,1是灰度,3是彩(RGB),网上有说4的是增加了一个透明度
二、def init(self):
类的初始化
python中的super( test, self).init()
就是将test的父类设为fa,然后将self转化成fa,接着调用fa的__init__()函数进行初始化
三、python基本语法小点
(), [], {}的区别
我们经常看到代码中会有这几个东西包住一些语句
- Python中的():
代表tuple元祖数据类型,元祖是一种不可变序列。 - Python中的中括号[]:
代表list列表数据类型,列表是一种可变序列。 - Python中的花括号{}:
代表字典数据类型,字典是Python中唯一内建的映射类型。字典中的值没有特殊的顺序,但都是存储在一个特定的键(key)下。键可以是数字、字符串甚至是元祖。
我个人认为就是set集合
四、nn.BatchNorm1d()
批归一化–BN
详细了解见论文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》
目标是
为了解决内部协变量偏移问题,就要使得每一个神经层的输入的分布在训练过程要保持一致。
为 了降低分布变化的影响,可使用归一化策略Normalization,把数据分布映射到一个确定的区间。
torch.nn.BatchNorm1d(num_features, eps=, momentum=)
num_features – 特征维度
eps – 为数值稳定性而加到分母上的值。
momentum – 移动平均的动量值
五、n.LeakyReLU(0.2, inplace=True)
激活函数
见两篇介绍,分别介绍激活函数和inplace的作用
PyTorch中网络里面的inplace=True字段的意思
LeakyReLU函数解析
六、img = img.view(img.size(0), *img_shape)
view() 函数
pytorch是在forward中声明的。 相当于reshape
这就才看完第一个类Generator,看上去就是搭建网络,然后中间有几层,参数都在代码里,可以当做一个模板