阅读cifar10 example时,我可以看到以下代码段,据说遵循谷歌命令行标准。但具体而言,这段代码的作用是什么?我没有找到包含tf.app.flags.DEFINE_string
FLAGS = tf.app.flags.FLAGS
tf.app.flags.DEFINE_string('train_dir', '/tmp/cifar10_train',
"""Directory where to write event logs """
"""and checkpoint.""")
tf.app.flags.DEFINE_integer('max_steps', 1000000,
"""Number of batches to run.""")
tf.app.flags.DEFINE_boolean('log_device_placement', False,
"""Whether to log device placement.""")
答案 0 :(得分:4)
我对TensorFlow的体验是,查看源代码通常比API doc中的Ctrl + F更有用。我使用TensorFlow项目打开PyCharm,可以轻松搜索如何执行某些操作的示例(例如,自定义阅读器)。
在这种特殊情况下,您想了解tensorflow/python/platform/flags.py中发生了什么。它实际上只是argparse.ArgumentParser()的一个薄包装器。特别是,所有DEFINE_ *最终都会向_global_parser添加参数,例如,通过这个辅助函数:
def _define_helper(flag_name, default_value, docstring, flagtype):
"""Registers 'flag_name' with 'default_value' and 'docstring'."""
_global_parser.add_argument("--" + flag_name,
default=default_value,
help=docstring,
type=flagtype)
因此,他们的旗帜API与您为ArgumentParser找到的旗帜API大致相同。