【发布时间】:2019-08-16 07:28:54
【问题描述】:
我有一个 train.py 脚本,它使用 argparse 来解析参数,但它显示了这个错误。
parser.add_argument('--config', dest='config', required=True, type= str , # config.json file path
help='hyperparameter of Model in json format')
parser.add_argument('-l', '--log', default="log.txt", type=str, # log file
help='log file')
出现的错误是这样的:
train.py: error: unrecognized arguments: --config /home/user/MODEL/tools/config.json --log /home/user/MODEL/logs/log.txt
我不明白这里出了什么问题。要传递的参数是一个 config.json 文件,其中包含我要训练的模型的规范。
args, unknown = parser.parse_known_args(['--config', '-l', '--log'])
我在上面添加了一行,现在我收到这样的错误:用法:train.py [-h] [-j N] [--epochs N] [-b N] [--lr LR] [--momentum M] [--weight-decay W] [--clip CLIP] --config CONFIG [--arch {Custom}] [-l LOG] train.py: error: argument --config: expected one argument:
这是传递到终端的命令:
python train.py --config=/home/user/MODEL/tools/config.json --log /home/user/MODEL/logs/log.txt 2>&1 | tee /home/user/MODEL/logs/train.log
【问题讨论】:
-
将上述内容放入测试文件时,不会显示错误。也许你应该尝试减少你的主要 python 程序。
-
usage消息是什么?它是否与您定义的参数相对应,或者是否有很多您未指定的参数。我怀疑您的代码中有另一个解析器不需要--config标志。 -
@hpaulj 实际上还有其他参数,但已提供默认值。并且没有任何重复的 --config 参数,只提供了一个。
-
测试帮助,'-h'。另一件事是查看
sys.argv,以确保外壳不会出现任何意外。
标签: python python-3.x argparse