aksr
aksr

Reputation: 352

AttributeError: module 'tensorflow' has no attribute 'get_variable'

I am trying to run this line of code :

var_init_1 = tf.get_variable("var_init_1", [1, 2], dtype=tf.int32,  initializer=tf.zeros_initializer)
print(var_init_1.shape)

It should give an output the shape of tensor of zeros.

But why I'm getting an error like this:

AttributeError                            Traceback (most recent call last)
<ipython-input-37-3cc73aa1818e> in <module>
----> 1 var_init_1 = tf.get_variable("var_init_1", [1, 2], dtype=tf.int32,  initializer=tf.zeros_initializer)
      2 print(var_init_1.shape)

AttributeError: module 'tensorflow' has no attribute 'get_variable'

Upvotes: 12

Views: 24084

Answers (4)

us_david
us_david

Reputation: 4917

I ran into this problem and other issue with tf v1 vs. tf v2. I found the best solution is proposed at this overstock link: Module 'tensorflow' has no attribute 'contrib'

$tf_upgrade_v2 \
--intree my_project/ \
--outtree my_project_v2/ \
--reportfile report.txt

Basically you just convert tf v1 project to tf v2. Most of the time it will work. You do need to inspect get_variable conversion and make sure it's what you want. Examine report.txt on how it's converted.

Upvotes: 0

Nafees Ahmed
Nafees Ahmed

Reputation: 103

tf.Variable does not work for initilizer. Use this instead of tf.compat.v1.get_variable instead of tf.Variable. This works tensorflow 2.0 and above.

Upvotes: 4

HajarM
HajarM

Reputation: 351

Replace tf.get_variable with tf.Variable.

Upvotes: 16

user11530462
user11530462

Reputation:

Mentioning the Solution for the benefit of the community.

Downgrading to Tensorflow 1.X Version (1.14 or 1.15) has resolved the issue, as Tensorflow version 2.0 doesn't support get_variable().

Upvotes: 3

Related Questions