2016-07-21 52 views
2

當閱讀cifar10 example時,我可以看到下面的代碼段,它被認爲遵循google命令行標準。但具體來說,這段代碼段做了什麼?我沒有找到API文檔覆蓋像tf.app.flags.DEFINE_stringtf.app.flags的用法或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.""") 

回答

3

我與TensorFlow的經驗是,在看源代碼往往比按Ctrl + F在API文檔更加有用。我使用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