2021SC@SDUSC
目录
本次代码分析是针对generator.py中导入的库中前两个库的分析,只有了解了导入这些库的目的,才能够继续分析下面的代码,才能加强对程序的理解与感悟。下图是generator.py中的部分代码。
torch库介绍
torch是一个科学计算框架,广泛支持机器学习算法,并以高效的方式并行处理CPU和GPU。由于使用简单快速的脚本语言LuaJIT以及底层的C / CUDA实现,因此易于使用和高效。
torch库包含多维张量的数据结构,支持在图形处理单元上计算张量,是pytorch最顶级的包。此外,它还提供了许多用于张量和任意类型的有效序列化的实用程序以及其他有用的实用程序。目前是深度学习和人工智能研究界最喜欢使用的库。
torch深度学习库中包含有很多实用性很强的数学计算库,torch库不仅定义了这些数据的数学运算。 此外,它提供了许多实用函数,可用于有效地序列化张量和任意类型,以及其他有用的实用函数。
torch库的核心功能有以下八个:
- 一个强大的N维数组
- 许多例行索引,切片,转置,...
- 通过LuaJIT向C提供了惊人的界面
- 线性代数程序
- 神经网络和能量模型
- 数字优化例程
- 快速高效的GPU支持
- 可嵌入,具有iOS,Android和FPGA后端的端口
就我们研究的课题来说,我们使用torch库主要是为了快速高效的GPU支持,提高运行速度。
torch库的安装如下图所示。
argparse库介绍
argsparse是python的命令行解析的标准模块,内置于python,不需要安装。这个库可以让我们直接在命令行中就可以向程序中传入参数并让程序运行。
argparse库为程序提供命令行接口,使得程序员关注于接口功能的实现,而不用去关注于用户的输入的命令是否正确。
主要功能:
- 使得用户编写命令行变得简单
- 针对程序需要的参数,argparse知道如何从sys.argv中解析这些参数
- 针对用户给程序无效的参数,argparse可以自动生成帮助usage
大体的流程是:
- 导入库
- 创建parser对象
- 向parser中添加参数
- 运行对象中的parse_args()函数,相当于获得一个完整的命令行解释器对象,执行完 .parse_args() 后,会得到一个 Namespace object,里面包含了从命令行中接收到的参数信息。
parser库的主要函数就是.add_argument()函数了,作用是添加参数,参数类型大体可以分为两种:
位置参数:位置固定,不能颠倒顺序,并且不能省略。
可选参数:位置不固定(但是需要在输入前使用类似关键字的东西),可以省略也可以不省略(这个可以在设置里面自己设置)
下面是两个示例。
位置参数 :顺序固定,输入时必须提供相应的参数
可选参数:顺序不定,使用类似关键字的形式来输入参数。