Python 如何使用;旗帜;(命令行开关)在TensorFlow中?
我正在尝试在应用程序中设置自定义批量大小 如果我将以下代码放入我的应用程序Python 如何使用;旗帜;(命令行开关)在TensorFlow中?,python,tensorflow,Python,Tensorflow,我正在尝试在应用程序中设置自定义批量大小 如果我将以下代码放入我的应用程序 tf.app.flags.DEFINE_integer('batch_size', 128, """Number of images to process in a batch.""") 它说了下面的错误 argparse.ArgumentError: argument --batch_size: conflicting option string(s): --b
tf.app.flags.DEFINE_integer('batch_size', 128,
"""Number of images to process in a batch.""")
它说了下面的错误
argparse.ArgumentError: argument --batch_size: conflicting option string(s): --batch_size
如果我删除这句话,它发誓:
usage: <myscript> [-h] [--batch_size BATCH_SIZE] [--data_dir DATA_DIR]
[--checkpoint_dir CHECKPOINT_DIR]
PNG是我希望从命令行识别的来自CIFAR数据库的图像。这是我希望的命令行,我不希望它包含“用法”输出中列出的选项。我怀疑您正在导入已定义了
批处理大小
标志的文件,错误是因为您试图用相同的名称重新定义标志。如果要导入cifar10
,只需从命令行使用--batch\u size
,并在代码中使用标志。batch\u size
。从更新中,听起来您根本不想使用标志
模块。如果查看类似于cifar10\u train.py
的程序,您将看到以下内容:
调用是一个样板文件,它确保解析所有标志,然后在同一模块中调用main()
函数。请注意,main()
有一个argv
参数。这将填充程序的剩余参数:在您的示例中,它将是一个列表[“image1.png”、“image2.png”、“image3.png”]
。因此,您可以简单地将main()
函数编写为如下内容:
def main(argv=None):
if argv:
for filename in argv:
run_inference_on_file(filename)
能否添加用于运行脚本的命令行?我希望处理的图像PNG文件列表。这就是我想要的,我不想从命令行设置
batch\u size
。如果python已经有了一个工作正常的标志包装器/库,为什么TensorFlow会有一个标志包装器/库?文档中有没有涉及标志的地方?
def main(argv=None): # pylint: disable=unused-argument
# ...
if __name__ == '__main__':
tf.app.run()
def main(argv=None):
if argv:
for filename in argv:
run_inference_on_file(filename)