tf.app.flags

时间:2016-07-21 17:07:07

标签: python tensorflow conv-neural-network

阅读cifar10 example时,我可以看到以下代码段,据说遵循谷歌命令行标准。但具体而言,这段代码的作用是什么?我没有找到包含tf.app.flags.DEFINE_string

之类的API文档
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.""")

1 个答案:

答案 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大致相同。