You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用argparse.ArgumentParser的choices参数修改data_type取值

你运行程序时没有显式传入--data_type参数,因此argparse会自动加载你定义的默认值image_train,可以通过以下三种方式修改为depth_train:

方式1:运行时通过命令行传参(无需修改代码,最灵活)

如果只是单次需要修改参数值,直接在启动脚本的命令后追加参数即可,假设你的程序入口文件名为train.py,执行如下命令:

python train.py --data_type depth_train

参数名和参数值之间用空格或等号连接均可,--data_type=depth_train效果完全相同

方式2:修改参数的默认值(长期生效)

如果需要默认就使用depth_train,直接修改参数定义语句里的default字段即可:

self.parser.add_argument('--data_type',
                         help='the type of current data',
                         type=str,
                         choices=['image_train','image_test','depth_train','depth_test'],
                         default='depth_train') # 此处将原默认值image_train替换为depth_train

修改后即使不主动传命令行参数,程序也会默认使用depth_train作为data_type的取值。

方式3:代码中直接覆盖参数值(动态修改场景使用)

如果需要在参数解析完成后再动态修改取值,可以在参数解析语句之后、调用MyDataSet之前添加赋值语句:

# 假设你的参数解析代码为 self.opt = self.parser.parse_args()
self.opt = self.parser.parse_args()
self.opt.data_type = 'depth_train' # 新增本行直接覆盖原有参数值

train_dataset=MyDataSet(self.opt.dataset_folder,
                        self.opt.data_type,
                        image_transforms)

内容的提问来源于stack exchange,提问作者Feona

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 04:57:04