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)