在tensorflow的demo中,都有这样的代码存在。
if __name__ == "__main__":
tf.app.run()
源码
"""Generic entry point script."""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import sys
from tensorflow.python.platform import flags
def run(main=None):
f = flags.FLAGS
f._parse_flags()
main = main or sys.modules['__main__'].main
sys.exit(main(sys.argv))
处理flage解析,然后执行main函数。
def _parse_flags(self):
result, _ = _global_parser.parse_known_args()
for flag_name, val in vars(result).items():
self.__dict__['__flags'][flag_name] = val
self.__dict__['__parsed'] = True
flag解析
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_unit', 128, 'Number of units in hidden layer 1')
flags.DEFINE_integer('hidden2_unit', 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', 'mnist-data/', 'Directory to put the training data')
flags.DEFINE_boolean('fake_data', False, 'If true, use fake data '
'for unit testing')