代码解析
启动项
在大多数神经网络模型的启动文件中,总能看到这样的一段代码:
import argparse
# 1.创建解析器
parser = argparse.ArgumentParser()
# 2.参数设置
parser.add_argument("-x", type=str, default="xxx", help="the xxx")
# 3.解析参数
args = parser.parse_args()
argparse是python用于解析命令行参数的标准模块。argument模块主要用于用户编写命令行接口;程序定义它需要的参数,然后argument从sys.argv中解析参数。
通过这种方式,可以直接使用命令行传输参数并直接启动神经网络模型。
示例
- 单个参数:
import argparse # 本文件名为a.py
parser = argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number", type=int)
args = parser.parse_args()
print(args.square**2)
命令行输入指令和运行结果:
$ python a.py 9
81
运行a.py
文件中的解析器,其中9
作为唯一的参数"square"的输入值被存储在args.square
中,你可以将它从命令行中读取并输入到模型中。
- 多个参数(指定名称赋值):
import argparse # 本文件名为b.py
parser = argparse.ArgumentParser()
parser.add_argument("--square", help="display a square of a given number", type=int)
parser.add_argument("--add1", help="display a sum of two given numbers", type=int)
parser.add_argument("--add2", help="display a sum of two given numbers", type=int)
args = parser.parse_args()
s = args.square ** 2
a = args.add1 + args.add2
print(s)
print(a)
命令行输入指令和运行结果:
$ python b.py --add1 2 --add2 10 --square 9
81
12
运行b.py
文件中的解析器,按照--参数名 参数值
对应名称对应参数填写。