关于python中argparse库的parser.add_argument函数中的name

部署运行你感兴趣的模型镜像

今天调试程序的时候发现,parser.add_argument函数中的引入的变量名,中间的下划线“_”和减号“-”出来都会变成下划线。因为python命名规则中有以下规则:

变量只可以包含英文字母(大写和小写都行)、下划线或数字,不能包含这 3 种字符之外的其他字符(如空格、%、-、*、/ 等),因为其他字符都已经被 Python 当成运算符来使用了。

parser.add_argument(
    "--train-towns",
    type=int,
    nargs="+",
    default=[0],
    help="dataset train towns (default: [0])",
)

因此,上面的代码等价于下面的代码:

parser.add_argument(
    "--train_towns",
    type=int,
    nargs="+",
    default=[0],
    help="dataset train towns (default: [0])",
)

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

import argparse def get_args(): """超数 """ parser=argparse.ArgumentParser(description='hyperparameters') parser.add_argument( '--algo_name',default='DQN',type=str,help='name of algorithm' ) parser.add_argument( '--env_name',default='CartPole-v0',type=str,help="name of environment" ) parser.add_argument( '--train_eps',default=200,type=int,help="episodes of training" ) parser.add_argument( '--test_eps',default=20,type=int,help="episodes of testing" ) parser.add_argument( '--ep_max_steps',default=100000,type=int,help="steps per episode,much larger value can simulate infinite steps" ) parser.add_argument( '--gamma',default=0.95,type=float,help="discounted factor" ) parser.add_argument( '--epsilon_start',default=0.95,type=float,help="initial value of epsilon" ) parser.add_argument( '--epsilon_end',default=0.01,type=float,help="final value of epsilon" ) parser.add_argument( '--epsilon_decay',default=500,type=int,help="decay rate of epsilon, the higher value, the slower decay" ) parser.add_argument( '--lr', default=0.0001,type=float,help="learning rate" ) parser.add_argument( '--memory_capacity',default=100000,type=int,help="memory capacity" ) parser.add_argument('--batch_size',default=64,type=int) parser.add_argument('--target_update',default=4,type=int) parser.add_argument('--hidden_dim',default=256,type=int) parser.add_argument('--device',default='cpu',type=str,help="cpu or cuda") parser.add_argument('--seed',default=10,type=int,help="seed") args=parser.parse_args([]) args={**vars(args)} #转换成字典类型 ##打印超数 print("超数") print(''.join(['=']*80)) tplt="{:^20}\t{:^20}\t{:^20}" print(tplt.format("Name","Value","Type")) for k,v in args.items(): print(tplt.format(k,v,str(type(v)))) print(''.join(['=']*80)) return args 针对以上代码,如何在调用get_args时对某个数不使用默认值?比如env_name使用Acrobot-v1?
最新发布
11-14
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值