transformer.HfArgumentParser案例以及Debug

HfArgumentParser 使用例子

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,下述介绍具体做法

  1. 鼠标右键,点击 Modify Run Configuration
    在这里插入图片描述
    在这里插入图片描述

若参数比较多,可点击 expand,放大输入窗口
在这里插入图片描述
在这里插入图片描述
下述的几种参数输入格式都是支持的

  • --a "Ali
  • --a Ali
  • --b=Bob

参数在json文件中

para.json

{
  "name" : "J",
  "age" : 18
}

方式一

from transformers import HfArgumentParser
from dataclasses import dataclass
import os
@dataclass
class Stu:
  age: int
  name: str

def main(*args):
  parser = HfArgumentParser((Stu))
  args = parser.parse_json_file(json_file=os.path.abspath(args[0]))
  print(args)

在这里插入图片描述

方式二 shell

main.pymain.py中,写入如下代码

from dataclasses import dataclass
from transformers import HfArgumentParser
import os
import sys

@dataclass
class Stu:
  age: int
  name: str

def main():
  parser = HfArgumentParser((Stu))
  args = parser.parse_json_file(json_file=os.path.abspath(sys.argv[1]))
  print(args)

main()

在这里插入图片描述

参考资料

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jieshenai

为了遇见更好的文章

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值