Help protect the Great Barrier Reef with TensorFlow on Kaggle Join Challenge


A class for running TensorFlow operations.

Migrate to TF2

Session does not work with either eager execution or tf.function, and you should not invoke it directly. To migrate code that uses sessions to TF2, rewrite the code without it. See the migration guide on replacing calls.


Used in the notebooks

Used in the guide Used in the tutorials

A Session object encapsulates the environment in which Operation objects are executed, and Tensor objects are evaluated. For example:

tf.compat.v1.disable_eager_execution() # need to disable eager in TF2.x
# Build a graph.
a = tf.constant(5.0)
b = tf.constant(6.0)
c = a * b

# Launch the graph in a session.
sess = tf.compat.v1.Session()

# Evaluate the tensor `c`.
print( # prints 30.0

A session may own resources, such as tf.Variable, tf.queue.QueueBase, and tf.compat.v1.ReaderBase. It is important to release these resources when they are no longer required. To do this, either invoke the tf.Session.close method on the session, or use the session as a context manager. The following two examples are equivalent:

# Using the `close()` method.
sess = tf.compat.v1.Session()

# Using the context manager.
with tf.compat.v1.Session() as sess:

The ConfigProto protocol buffer exposes various configuration options for a session. For example, to create a session that uses soft constraints for device placement, and log the resulting placement decisions, create a session as follows:

# Launch the graph in a session that allows soft device placement and
# logs the placement decisions.
sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(

target (Optional.) The execution engine to connect to. Defaults to using an in-process engine. See Distributed TensorFlow for more examples.
graph (Optional.) The Graph to be launched (described above).
config (Optional.) A ConfigProto protocol buffer with configuration options for the session.

graph The graph that was launched in this session.
graph_def A serializable version of the underlying TensorFlow graph.
sess_str The TensorFlow process to which this session will connect.



View source

Returns a context manager that makes this object the default session.

Use with the with keyword to specify that calls to or tf.Tensor.eval should be executed in this session.

c = tf.constant(..)
sess = tf.compat.v1.Session()

with sess.as_default():
  assert tf.compat.v1.get_default_session() is sess

To get the current default session, use tf.compat.v1.get_default_session.

c = tf.constant(...)
sess = tf.compat.v1.Session()
with sess.as_default():
# ...
with sess.as_default():


Alternatively, you can use with tf.compat.v1.Session(): to create a session that is automatically closed on exiting the context, including when an uncaught exception is raised.