【问题标题】:Python argparse: unrecognized arguments while passing args in commandPython argparse:在命令中传递参数时无法识别的参数
【发布时间】:2019-08-17 17:15:42
【问题描述】:

我在python中有一段代码如下:

if __name__ == "__main__":

    parser = argparse.ArgumentParser(description='Experiments for optimizer')
    parser.add_argument('list_experiments', type=str, nargs='+',
                        help='List of experiment names. E.g. CDSGD EASGD FASGD SGD Adam --> will run a training session with each optimizer')
    parser.add_argument('--model_name', default='CNN', type=str,
                        help='Model name: CNN, Big_CNN or FCN')
    parser.add_argument('--batch_size', default=128, type=int,
                        help='Batch size')
    parser.add_argument('--nb_epoch', default=30, type=int,
                        help='Number of epochs')
    parser.add_argument('--dataset', type=str, default="cifar10",
                        help='Dataset, cifar10, cifar100 or mnist')
    parser.add_argument('--n_agents', default=5, type=int,
                        help='Number of agents')
    parser.add_argument('--communication_period', default=1, type=int,
                        help='Gap between the communication of the agents')
    parser.add_argument('--sparsity', default=False, type=bool,
                        help='The connection between agents if sparse or not, default: False i.e. fully connected')
    args = parser.parse_args()

我想用命令运行它

python main.py CDSGD -m CNN -b 512 -ep 200 -d cifar10 -n 5 -cp 1 -s 3

但我收到以下错误:

main.py: error: unrecognized arguments: -m CNN -b 512 -ep 200 -d cifar10 -n 5 -cp 1 -s 3

我该如何解决这个问题?

【问题讨论】:

  • 您从未定义过这些短选项,例如,您定义了--model_name,但没有定义-m

标签: python python-3.x


【解决方案1】:

long 选项可以缩写为唯一前缀(例如,--model 将被识别为 --model_name,但必须明确定义短选项。

例如,

parser.add_argument('--model_name', '-m', default='CNN', type=str,
                    help='Model name: CNN, Big_CNN or FCN')

【讨论】:

    猜你喜欢
    • 2013-06-11
    • 1970-01-01
    • 2019-07-14
    • 2012-09-30
    • 2015-07-20
    • 2021-08-16
    • 2020-04-11
    相关资源
    最近更新 更多