无法识别的论点:是的

时间:2017-04-13 00:31:15

标签: python

代码:

if __name__ == '__main__':

    parser = argparse.ArgumentParser(description='Build dataset')
    parser.add_argument('jpeg_dir', type=str, help='path to jpeg images')
    parser.add_argument('nb_channels', type=int, help='number of image channels')
    parser.add_argument('--img_size', default=256, type=int,
                        help='Desired Width == Height')
    parser.add_argument('--do_plot', action="store_true",
                        help='Plot the images to make sure the data processing went OK')
    args = parser.parse_args()

错误:

$ python make_dataset.py /home/abhishek/Lectures/columbia/deep_learning/project/DeepLearningImplementations/pix2pix/data/pix2pix/datasets 3 --img_size 256 --do_plot True
usage: make_dataset.py [-h] [--img_size IMG_SIZE] [--do_plot]
                       jpeg_dir nb_channels
make_dataset.py: error: unrecognized arguments: True

我在这里使用bash shell。我按照文档https://github.com/tdeboissiere/DeepLearningImplementations/tree/master/pix2pix/src/data

中的提及传递

4 个答案:

答案 0 :(得分:1)

你不需要在我所知的范围内指出True,只需要包括--do_plot,它告诉你你想做情节。而且,您没有将其配置为接受任何参数。

在源代码的以下行中:

if args.do_plot:

如果您在命令行中实际包含--do_plot,它将被评估为True,否则将被评估为False。

答案 1 :(得分:1)

在配置它之后,--do_plot选项不会带任何参数。 store_true中的argparse参数表示该选项的存在会自动将True存储在相应的变量中。

因此,为了防止出现问题,请停止将True传递给--do_plot

答案 2 :(得分:0)

问题在于此处的规范:

parser.add_argument('--do_plot', action="store_true",
                    help='Plot ...')

您已将 do_plot 声明为没有参数的选项;后面的 True 在您的参数协议中没有任何意义。这是一个可以忽略的选项,当存在时。

答案 3 :(得分:0)

(我遇到的)原因之一,并希望我的假设能解决您的问题是在Ubuntu上(在Windows上,IDK,但可以),

.py文件(假设为A.py)导入具有args(人们创建__main__以测试功能函数)的函数时,请调用A函数)。 .py导入/使用A可能会混淆解析参数,因为A.py也会解析参数,等等。

因此,您可以通过重构来解决,或者只是(暂时)注释掉它们以使其首先运行。