Issue with add method in tensorflow : AttributeError: module 'tensorflow.python.framework.ops' has no attribute '_TensorLike'

47,902

Solution 1

For me, the fix was importing

from tensorflow.keras import Sequential
from tensorflow.keras.layers import Conv2D, Flatten, Dense

instead of

from keras import Sequential
from keras.layers import Conv2D, Flatten, Dense

There seems to be some weird compatibility issues between keras and tensorflow.keras

Solution 2

You can use the following import command:

from tensorflow.keras.layers import ... 

instead of the 'old' one:

from keras.layers import ....

As described here.

Solution 3

It is due to version incompatibility.
Update keras to the latest version compatible with tensorflow:

pip install --upgrade keras==x.x.x

Solution 4

For those who stumbled on to this, reinstalling Keras and Tensorflow fixes the issue.

Solution 5

!pip uninstall tensorflow 
!pip install tensorflow==1.14

!pip uninstall keras 
!pip install keras==2.2.4

Installing the above versions of keras and tensorflow have solved the problem for me.

Share:
47,902

Related videos on Youtube

ConfusedProgrammer
Author by

ConfusedProgrammer

Updated on May 10, 2021

Comments

  • ConfusedProgrammer
    ConfusedProgrammer almost 3 years
    import keras as K
    from keras.models import Sequential
    from keras.layers import Dense
    from tensorflow import set_random_seed
    
    for hidden_neuron in hidden_neurons:
      model = Sequential()
    

    model.add(Dense(hidden_neuron, input_dim=61, activation='relu'))

    -> i am getting error at this line. I am not really sure what am i missing here.

    Traceback (most recent call last):

    File "PycharmProjects/HW2/venv/bin/hw3q4.py", line 46, in model.add(Dense(hidden_neuron, input_dim=61, activation='relu')) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/keras/engine/sequential.py", line 165, in add layer(x) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/keras/engine/base_layer.py", line 414, in call self.assert_input_compatibility(inputs) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/keras/engine/base_layer.py", line 279, in assert_input_compatibility K.is_keras_tensor(x) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py", line 472, in is_keras_tensor if not is_tensor(x): File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py", line 480, in is_tensor return isinstance(x, tf_ops._TensorLike) or tf_ops.is_dense_tensor_like(x) AttributeError: module 'tensorflow.python.framework.ops' has no attribute '_TensorLike'

  • Cadoiz
    Cadoiz over 3 years
    Actually, that is not entirely true. It depends on the combination of keras and tensorflow versions as keras was integrated into tf as tensorflow.keras. Nevertheless you could get lucky by updating.
  • Sergey Bushmanov
    Sergey Bushmanov over 3 years
    Why not sync tf and keras and import properly from keras?
  • 武状元 Woa
    武状元 Woa about 3 years
    Great! You made my day!
  • John_Doe
    John_Doe almost 2 years
    Can't find that version of tensorflow available anymore (only from 2.2.0 onwards via pip)