2021SC@SDUSC
目录
本次代码分析是针对generator.py中导入的库中后四个库/类的分析,只有了解了导入这些库的目的,才能够继续分析下面的代码,才能加强对程序的理解与感悟。下图是generator.py中的部分代码。
time库介绍
time库的作用:time库是Python中处理时间的标准库,它能够获取系统时间并格式化输出功能,并且可以提供系统级精确计时功能,对程序性能分析提供很大帮助。
time库的使用:time库包含三类函数,分别是时间获取、时间格式化和程序计时。
时间获取包含三个函数:time()、ctime()和gmtime(),time()可以获取时间戳;ctime()可以获取可读时间;gmtime()可以获取其他程序能处理的时间。
时间格式化包含两个函数:strftime(tpl,ts)和strptime(ts,tpl),strftime(tpl,ts)中的tpl是格式化模板字符串,用来定义输出效果;ts是系统内部时间类型变量;strptime(ts,tpl)中的str是字符串形式的时间值;tpl是格式化模板字符串,用来定义输入效果。
程序计时包含两个函数:perf_counter()和sleep(),perf_counter()需要进行连续计数并进行相减才能获得时间长度;sleep()程序休眠时间,时间为浮点数,单位为秒,如9.9秒。
在generator.py中我们引用该库是用来实现程序计时。
dataset类介绍
在generator.py中我们导入的语句是from lastDataset import dataset,dataset是一个class,这句是从lastDataset.py中导入dataset这个class,关于dataset的定义在lastDataset.py已经完全,后续会给出介绍。
model类介绍
model类是models文件夹下newmodel.py中自定义一个类,可以看作是一个模型,继承自nn.Module类,并且一定要实现两个基本的函数,第一是构造函数__init__,在__init__构造函数中申明各个层的定义,第二个是层的逻辑运算函数,即所谓的前向计算函数forward函数,实现层之间的连接关系,实际上就是前向传播的过程。
事实上,pytorch里面一般是没有层的概念,层也是当成一个模型来处理的,pytorch注重的是模型Module。关于model类会在以后的博客给出介绍。
pargs,dynArgs方法介绍
pargs,dynArgs是pargs.py中定义的两个方法,这两个方法的返回值都是args,表示多个无名参数,通过两个方法,考虑了各种情形,从而得到args。后面会对pargs.py进行详细介绍,以便更好地了解程序。