我正在尝试在我的应用程序中设置自定义批处理大小。

如果我将以下代码放入我的应用中

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]

FLAGS.batch_size使用的行。
myscript是我的脚本的名称,我没有在任何地方写入此消息,也完全不希望使用这些命令行开关。好像TF使用了一些Python开关解析库,并以某种方式期望这些开关。如何避免这种情况并期待自定义开关?

如何对自定义batch_size进行硬编码?

更新

我的命令行如下:
myscript image1.png image2.png image3.png

PNG是我希望从命令行识别的来自CIFAR数据库的图像。我希望它是命令行,但我不希望它包含“用法”输出中列出的选项。

最佳答案

从您的更新中,听起来您根本根本不想使用FLAGS模块。如果查看类似cifar10_train.py的程序,则会看到以下near the bottom of the script:

def main(argv=None):  # pylint: disable=unused-argument
  # ...

if __name__ == '__main__':
  tf.app.run()

tf.app.run() 调用是一个样板文件,可确保解析所有标志,然后在同一模块中调用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)

关于python - 如何在TensorFlow中使用 “FLAGS”(命令行开关)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35241827/

10-16 23:16