HfArgumentParser可以将类对象中的实例属性转换成转换为解析参数。必须注意的是,这里的类对象必须是通过@dataclass()创建的类对象。并且通过HfArgumentParser创建的解析参数,都是可选参数。
from transformers import HfArgumentParser
from dataclasses import dataclass, field
@dataclass()
class A():
a: str = field(default="Alice")
@dataclass()
class B():
b: str = field(default="汪汪汪")
if __name__ == '__main__':
parser = HfArgumentParser((A, B))
a_args, b_args = parser.parse_args_into_dataclasses()
print(a_args)
print(b_args)
shell
python HfArgumentParser_test.py --a="Ali" --b="Bob"
结果:
A(a=‘Ali’)
B(b=‘Bob’)
Pycharm
针对shell传参不能Debug的痛点,可使用Pycharm进行Debug,下述介绍具体做法
- 鼠标右键,点击 Modify Run Configuration
若参数比较多,可点击 expand,放大输入窗口
下述的几种参数输入格式都是支持的
--a "Ali
--a Ali
--b=Bob
参考资料
- transformer.HfArgumentParser的使用.nlp的小学生