To make TensorFlow be more "Pythonic" in version 2.0, by design TF 2.0 does not have tf.Session.
TensorFlow 1.X requires users to manually stitch together an abstract syntax tree (the graph) by making tf.* API calls. It then requires users to manually compile the abstract syntax tree by passing a set of output tensors and input tensors to a session.run() call.
TensorFlow 2.0 executes eagerly (like Python normally does) and in 2.0, graphs and sessions should feel like implementation details.
You could use:
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
However, this does not let you take advantage of many of the improvements made in TensorFlow 2.0.
The better solution is:
- Replace tf.Session.run calls: Every tf.Session.run call should be replaced by a Python function.
- The feed_dict and tf.placeholders become function arguments.
- The fetches become the function's return value.