问题
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'
回答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
回答2:
For those who stumbled on to this, reinstalling Keras and Tensorflow fixes the issue.
回答3:
from tensorflow.keras.layers import ... instead of from keras.layers import ....
As described here:
https://github.com/tensorflow/models/issues/6177
回答4:
Simply updating both TensorFlow as well as Keras might fix the issue
回答5:
It depends on how you are importing the preliminaries. If importing tensorflow as tf and importing keras within the tensorflow, you should start with tf.keras. otherwise, if you are importing directly keras.models then you can just start off with Input() or Conv().
来源:https://stackoverflow.com/questions/53135439/issue-with-add-method-in-tensorflow-attributeerror-module-tensorflow-python