在很多TensorFlow公布的Demo中,都有这样的代码存在,如下,这是干什么的呢?
if __name__ == "__main__": tf.app.run()
我们来看一下源代码:
# tensorflow/tensorflow/python/platform/default/_app.py # Copyright 2015 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== """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))
处理flag解析,然后执行main函数,那么flag解析是什么意思呢?诸如这样的:
tf.app.flags.DEFINE_boolean("self_test", False, "True if running a self test.") tf.app.flags.DEFINE_boolean('use_fp16', False, "Use half floats instead of full floats if True.") FLAGS = tf.app.flags.FLAGS
参考资料
http://stackoverflow.com/questions/33703624/how-does-tf-app-run-work