The name tf.Session is deprecated. Please use tf.compat.v1.Session instead

40,729

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.
Share:
40,729

Related videos on Youtube

Hadi Rasekh
Author by

Hadi Rasekh

Updated on June 30, 2020

Comments

  • Hadi Rasekh
    Hadi Rasekh almost 4 years

    I got the following deprecation warning in my tensorflow code:

    The name tf.Session is deprecated. Please use tf.compat.v1.Session instead.

    • Why I got this warning
    • What will happen in tensorflow 2.0. instead of tf.session
    • Is it okay to use tf.compat.v1.Session
  • eapo
    eapo over 4 years
    >>> tf.disable_v2_behavior() WARNING:tensorflow:From /usr/local/lib/python3.7/dist-packages/tensorflow_core/pytho‌​n/compat/v2_compat.p‌​y:65: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. Instructions for updating: non-resource variables are not supported in the long term today :|