When we use tensorflow to develop deep learning program, we need to start tensorflow from an entry, that is tf.app.run().
Attribute Error
If we run script like the follows:
import numpy as np
import tensorflow as tf
if __name__ == "__main__":
tf.app.run()
It will give errors:
AttributeError: 'module' object has no attribute 'main'
Solution
We need to define a main() function for it.
But if we only add main function, it is still cannot work.
import numpy as np
import tensorflow as tf
def main():
print "tensorflow"
if __name__ == "__main__":
tf.app.run()
The error is:
TypeErrorTraceback (most recent call last)
<ipython-input-4-0f1c1ab921ed> in <module>()
6
7 if __name__ == "__main__":
----> 8 tf.app.run()
/usr/local/anaconda2/lib/python2.7/site-packages/tensorflow/python/platform/app.pyc in run(main, argv)
46 # Call the main function, passing through any arguments
47 # to the final program.
---> 48 _sys.exit(main(_sys.argv[:1] + flags_passthrough))
49
50
TypeError: main() takes no arguments (1 given)
That is because run() function passes the arguments to main function, so we need to add it to main function.
Like this,
import numpy as np
import tensorflow as tf
def main(args):
print args
if __name__ == "__main__":
tf.app.run()
It will give the results:
['/home/jupyter/pfshi/tensorflow/cnn_tutorials/cnn_tutorial.py']