argparse
argparse模块用于编写用户友好的命令行接口。程序定义它需要的参数,argparse解析出那些参数。 同时,还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。
创建argparse
import argparse
parser = argparse.ArgumentParser(description='写一点对这个函数参数的描述呀')
这个描述和参数信息可通过保存代码的py文件查询
python 文件名.py -h
通过add_argument添加参数
parser.add_argument(
"-l",
"--length",
type=int,
default=20,
help="Maximum conversation length"
)
-l和–length是name or flags,如下方式即可传参,其中“=”可省略
python 文件名.py -l=5
#或者
python 文件名.py -length=5
type限制参数的类型有int,float,str等,同样有限制作用的参数如表:
参数 | 说明 | 常用值 |
---|---|---|
nargs | 传入参数的数量限制 | +表示至少一个参数,?表示0或1个,*表示0或所有 |
action | 传入的是bool值 | store_true默认False,store_false默认true |
default表示没有传入对应参数时,采取默认值,help是帮助信息
通过parse_args()解析参数
if __name__ == "__main__":
args = parser.parse_args()
函数名(args.length, args.model_path, args.character, args.score)
写个参数的类
写个类的py,类里设置各种参数的默认值
class ModelArgs:
def __init__(self):
self.output_dir = "output-medium"
self.model_type = "gpt2"
self.model_name_or_path = "microsoft/DialoGPT-medium"
self.config_name = "microsoft/DialoGPT-medium"
self.tokenizer_name = "microsoft/DialoGPT-medium"
self.block_size = 512
self.do_train = True
在别的文件调用这个类
通过如下方式,修改与默认值不同的参数
from XXX import ModelArgs
args = ModelArgs()
args.output_dir = "output-joey"
args.model_name_or_path = "microsoft/DialoGPT-medium"
args.config_name = "microsoft/DialoGPT-medium"
args.tokenizer_name = "microsoft/DialoGPT-medium"
函数名(args)
直接把这个类传到函数,在函数内调用这个类的属性即可,eg: args.output_dir
PS:
在上级目录或别的目录下,需要先导入py文件所在目录
# Setup python path to call other libs.
import sys
sys.path.append("../")