在看别人的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()。
说白了,有两种情况:
- 如果你的代码中的入口函数不叫main(),而是一个其他名字的函数,如test(),则你应该这样写入口
tf.app.run(test)
- 如果你的代码中的入口函数叫main(),则你就可以把入口写成
tf.app.run()
如果我们什么都不填tf.app.run()中默认是main
(main参数表示是调用main函数本事,调用函数整体,调用函数对象)
附注 python中函数名加括号和不加括号的区别
一、不带括号时,调用的是这个函数本身 ,是整个函数体,是一个函数对象,不需要等该函数执行完成。
二、带括号(参数或者无参),调用的是函数的执行结果,须等该函数执行完成的结果。
参考博客
https://mp.csdn.net/postedit/102969683
https://blog.csdn.net/fxjzzyo/article/details/80466321
https://blog.csdn.net/helei001/article/details/51859423
https://blog.csdn.net/lujiandong1/article/details/53262612