代码:
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
中的提及传递答案 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
也会解析参数,等等。
因此,您可以通过重构来解决,或者只是(暂时)注释掉它们以使其首先运行。