【问题标题】:The error: unrecognized arguments: for a json file to passed into the arguments错误:无法识别的参数:用于传递给参数的 json 文件
【发布时间】: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


【解决方案1】:

在上面两行下面添加下面一行:

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')
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:预期一个论点:
  • 这是我在命令行中传递的内容: python train.py --config=/home/user/MODEL/tools/config.json --log /home/user/MODEL/logs /log.txt 2>&1 |三通 /home/user/MODEL/logs/train.log
  • @SayoojBalakrishnan 请将这 2 个格式正确的 cmets 添加到您的问题中。问题应该包含重现问题的所有信息,这使得问题可以回答。
  • (一般说明:不需要在答案中添加“希望这有帮助”等类似材料。每个人都发布答案希望它有帮助,我们当然不需要 27M它的副本。这里首选技术写作)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多