一、argparse库设置命令行参数
带有--前缀的形如--epoch表示可选参数,不必要且无需按特定的顺序;不带--的为位置参数,必须按特定顺序,且通常是必需的。
1.1 parser.add_argument()各个参数解释:
name_or_flags:如"batch_size",表示参数的名字
default:为参数的默认值
help:为参数的解释信息
type:为参数的数据类型(默认值为None,通过输入字符串自动推断)
action:指定参数的动作,有4个选项:(只有当在终端命令行指定相应参数才会执行) action="store" 将参数存储为属性; action="store_true" 将参数存储为True action="store_false" 将参数存储为False; action="append" 将参数存储为一个列表
required:指定参数是否是必需的(required=True/False),若设置required=True,则命令行必须有该元素
choices:指定参数的可选值列表(choices=[1, 2, 3])。如果设置了该参数,那么命令行中提供的值必须是列表中的一个,否则将引发错误
二、例子
import argparse
import numpy as np
from numpy import linalg
def set_args():
#创建一个argparse.ArgumentParser()实例化对象,赋给parser,用于设置命令行参数
parser = argparse.ArgumentParser()
#添加并设置命令行参数
parser.add_argument("--learning_rate", default=0.0002, help="setting learning_rate")
parser.add_argument("--batch_size", type=int, default=64, help="batch size")
parser.add_argument("--force_reload", action="store_ture", help="force reload the datasets")
opt = parser.parse_args()
return opt