2016-07-21 1 views
2

При чтении cifar10 example я вижу следующий сегмент кода, который, как говорят, соответствует стандарту командной строки google. Но конкретно, что делает этот сегмент кода? Я не нашел документ API, чтобы покрыть что-то вроде tf.app.flags.DEFINE_stringИспользование или API для tf.app.flags

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 док. Я оставляю PyCharm открытым с проектом TensorFlow и может легко найти пример того, как что-то делать (например, пользовательский читатель).

В этом конкретном случае вы хотите посмотреть, что происходит в 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.