在看别人的tensorflow代码时,经常会碰到最后的执行入口会写成下面这样:
# 前面的代码省略了...
。。。
。。。
。。。
def main(argv=None):
mnist = input_data.read_data_sets("F:\mydata\TensorFlowData\MNIST_data", one_hot=True)
train(mnist)
if __name__ == '__main__':
tf.app.run()
那么 tf.app.run()什么意思呢 ?
可以猜到,应该是函数入口,类似于c/c++中的main()。
是的!
那么它的工作机制是怎样的呢 ?网上其他文章都是从源码角度来解释的,写得很好,但我没太看懂~
参见下面两个:
https://blog.csdn.net/helei001/article/details/51859423
https://blog.csdn.net/lujiandong1/article/details/53262612
大概意思是通过处理flag解析,然后执行main函数。
说白了,有两种情况:
-
1.如果你的代码中的入口函数不叫main(),而是一个其他名字的函数,如test(),则你应该这样写入口tf.app.run(test())
-
2.如果你的代码中的入口函数叫main(),则你就可以把入口写成tf.app.run()
https://stackoverflow.com/questions/33703624/how-does-tf-app-run-work