2015-11-26 2 views
62

Я читаю некоторые примеры кодов в Tensorflow, я нашел следующий кодКакова цель tf.app.flags в TensorFlow?

flags = tf.app.flags 
FLAGS = flags.FLAGS 
flags.DEFINE_float('learning_rate', 0.01, 'Initial learning rate.') 
flags.DEFINE_integer('max_steps', 2000, 'Number of steps to run trainer.') 
flags.DEFINE_integer('hidden1', 128, 'Number of units in hidden layer 1.') 
flags.DEFINE_integer('hidden2', 32, 'Number of units in hidden layer 2.') 
flags.DEFINE_integer('batch_size', 100, 'Batch size. ' 
       'Must divide evenly into the dataset sizes.') 
flags.DEFINE_string('train_dir', 'data', 'Directory to put the training data.') 
flags.DEFINE_boolean('fake_data', False, 'If true, uses fake data ' 
       'for unit testing.') 

в tensorflow/tensorflow/g3doc/tutorials/mnist/fully_connected_feed.py

Но я не могу найти какие-либо документы об этом использовании tf.app.flags.

И я обнаружил, что реализация этих флагов в tensorflow/tensorflow/python/platform/default/_flags.py

Очевидно, что этот tf.app.flags каким-то образом используется для настройки сети, так почему это не в API Docs? Может ли кто-нибудь объяснить, что здесь происходит?

ответ

72

tf.app.flags модуль в настоящее время является тонкая обертка вокруг питона-GFlags, поэтому documentation for that project является лучшим ресурсом для того, как использовать его argparse, который реализует подмножество функциональности python-gflags.

Обратите внимание, что этот модуль в настоящее время упакован как удобство для написания демонстрационных приложений и не является частью публичного API, поэтому он может измениться в будущем.

Мы рекомендуем реализовать собственный анализ флагов с помощью argparse или любой другой библиотеки, которую вы предпочитаете.

EDIT: Модуль tf.app.flags не на самом деле реализуется с помощью python-gflags, но он использует подобный API.

+45

«упакован как удобство для написания демонстрационных приложений и не является частью публичной точки доступа» ... странно, что он используется почти в каждом учебнике, но на нем нет документации. Вызывает много путаницы. – speedplane

+1

Для хорошего примера использования argparse для передачи аргументов модели TensorFlow и способа объединения ее в модуль Python для облака см. [Task.py] (https://github.com/GoogleCloudPlatform/training- аналитик данных/blob/master/courses/machine_learning/cloudmle/taxifare/trainer/task.py) в [taxifare] (https://github.com/GoogleCloudPlatform/training-data-analyst/tree/master/courses/ machine_learning/cloudmle/taxifare), часть учебных материалов для учебных материалов и аналитиков (https://github.com/GoogleCloudPlatform/training-data-analyst/tree/master/courses/machine_learning/cloudmle/). – charlesreid1

+0

Является ли 'tf.app.run' также не частью публичного API? Потому что он полагается на 'tf.app.flags' и имеет общедоступную документацию (https://www.tensorflow.org/api_docs/python/tf/app/run), поэтому я предполагаю, что он является общедоступным и поддерживается. Если вместо этого рекомендуется использовать 'argparse', можете ли вы представить краткий пример рекомендуемого способа его использования с помощью' argparse'? – naktinis

 Смежные вопросы

  • Нет связанных вопросов^_^