运行谷歌地标识别2020季军方案train.py argparse报错如何解决?
错误原因
该报错是运行脚本时未传入4个标记为required=True的必填参数导致的,缺失参数分别为--kernel-type、--train-step、--image-size、--enet-type,不属于argparse本身的功能异常。
修复方案
方案1:命令行运行时传入参数
直接在运行命令后补充对应参数即可,参考示例如下,可根据自身需求调整参数值:
python train.py \ --kernel-type baseline \ --train-step 0 \ --image-size 512 \ --enet-type efficientnet_b3 \ --data-dir 你的数据集存放路径 \ --batch-size 32 \ --CUDA_VISIBLE_DEVICES 0
参数说明:
--kernel-type:自定义的训练任务标识,用于区分不同训练实验--train-step:对应项目的训练阶段编号--image-size:模型输入的图片分辨率--enet-type:选用的EfficientNet模型版本,根据项目支持的选型填写即可
方案2:修改代码给必填参数加默认值
如果不想每次运行都手动敲参数,可以直接修改argparse配置代码,去掉四个参数的required=True标记,补充默认值:
# 把原来的四行必填参数修改为如下形式,默认值可自行调整 parser.add_argument('--kernel-type', type=str, default='baseline') parser.add_argument('--train-step', type=int, default=0) parser.add_argument('--image-size', type=int, default=512) parser.add_argument('--enet-type', type=str, default='efficientnet_b3')
修改后直接运行python train.py即可使用默认参数启动训练。
注意事项
- 注意把
--data-dir参数的值改为你本地存放GLD2数据集的实际路径,否则后续会出现数据集找不到的报错 - 单卡训练无需传入
--local_rank参数,分布式训练时按框架要求补充对应参数即可
内容的提问来源于stack exchange,提问作者helpmethanks
相关产品推荐
相关产品推荐

