此包用于解析命令行传入的参数。使用时有如下两种使用方式,个人推荐方式二。
方式一、
在 py 文件内先写好接受的参数
import argparse
parser = argparse.ArgumentParser(description='manual to this script')
parser.add_argument('--gpus', type=str, default = None) #定义gpus参数
parser.add_argument('--batch-size', type=int, default=32) #定义batch_size参数
parse.add_argument('--p',type=float, default=0.25) #定义p参数
parse.add_argument('--author', type=bool, default=True) #定义author参数
args = parser.parse_args() #解析命令行传入的参数
print(args.gpus) #打印传入的gpus参数
print(args.batch_size) # 打印batch_size参数
print(args.p) # 打印 p参数
复制代码
调用时
python script.py --gpus=0,1,2 --batch-size=10 --p=0.3 --author 15 #传入参数gpus="0,1,2",batch-size=32,p=0.25,author=True
复制代码
ps:常用到的类型有 bool, int, str, float。bool 类型的解析比较特殊,传入任何值都会被解析成 True,传入空值时才为 False
方式二、
上面我们写的是 parser.parse_args()。但是这样会解析所有的参数,即使有些参数不是传给这个脚本的。
可以用 parse_known_args()来替代,当存在额外参数时,解析不会产生错误。 而是会返回一个由两个条目构成的元组,其中包含带成员的命名空间和剩余参数字符串的列表。
在 py 文件中定义参数:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--index1",type=int,default=0)
parser.add_argument("--index2",type=int,default=0)
args = parser.parse_known_args()[0]
index = np.array([args.index1,args.index2]).reshape(1,2,1)
复制代码
在命令行中调用
python main.py --index1 10 --index2 14 #传入参数index1=10,index2=14
复制代码
评论