Attributeerror: module tensorflow has no attribute placeholder

The Attributeerror: module tensorflow has no attribute placeholder is an error message that suggests when you are trying to access the function tf.placeholder, but it does not exist in the TensorFlow version that has been installed in your computer.

In TensorFlow 2.x, tf.placeholder has been replaced and removed with the tf.Tensor objects. Rather than using the tf.placeholder, you can create a tf.Tensor with the tf.constant function and can change later by its value by just passing it to the feed_dict argument in a TensorFlow session’s run method.

The following is an example of how to use the tf.constant:

import tensorflow as tf

# Create a Tensor with a default value
x = tf.constant(20, dtype=tf.int32)

# Evaluate the Tensor in a TensorFlow session
with tf.Session() as sess:
  print(sess.run(x)) # Output: 20

In some instances, you can use alternatively the tf.Variable objects, that can allow you to change the value during the course of the TensorFlow session.

Example

import tensorflow as tf

# Create a TensorFlow variable
x = tf.Variable(20, dtype=tf.int32)

# Initialize the variable
init = tf.global_variables_initializer()

# Evaluate the variable in a TensorFlow session
with tf.Session() as sess:
  sess.run(init)
  print(sess.run(x)) # Output: 20

Solution – Attributeerror: module TensorFlow has no attribute placeholder

The following are the alternative solutions for the Attributeerror: module TensorFlow has no attribute placeholder:

  • Disable the Tensorflow 2. x behavior
  • Complete the program code conversion from 1. x to 2. x
  • Downgrade the version of TensorFlow

Disable the Tensorflow 2. x behavior

Tensorflow 2.x also provides an option to disable the behavior of the tf tf.disable v2_behavior. You just need to import the tensorflow.compat.v1 and simply disable the v2_behavior in the code of the program. You will just need to add two lines of code to your program. But always make sure that the other part of the code that you write or be used should be in the TensorFlow 1. x.

#import the TensorFlow
import tensorflow.compat.v1 as tf

#disable the tf.disable_v2_behavior()
tf.disable_v2_behavior()

Complete the program code conversion from 1. x to 2. x

Since you have already installed on your computer the TensorFlow 2.0 x version and you want to run 1. x and the supportive code as well. Consequently when you are getting this attributeerror. Once we convert our code from 1. x to 2. x so there will be no error in our program. Don’t worry about it because it is very easy and the compatibility script is provided by TensorFlow 2. x.

Just simply use the following command below.

tf_upgrade_v2 \
  --intree code/ \
  --outtree code_v2/ \
  --reportfile text.txt

Downgrade the version of TensorFlow

You can simply downgrade the TensorFlow existing version to 1. x. The following is the below command.

pip install tensorflow==1.15.5

Conclusion

I hope this article has helped you solve your problem about the Attributeerror: module TensorFlow has no attribute placeholder. Check out my previous and latest articles for more life-changing tutorials which could help you a lot.

Leave a Comment