tf.app.run()

在很多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

原文地址:https://www.cnblogs.com/antflow/p/7270341.html