张量流中添加方法的问题:AttributeError:模块'tensorflow.python.framework.ops'没有属性'_TensorLike'
Posted
技术标签:
【中文标题】张量流中添加方法的问题:AttributeError:模块\'tensorflow.python.framework.ops\'没有属性\'_TensorLike\'【英文标题】:Issue with add method in tensorflow : AttributeError: module 'tensorflow.python.framework.ops' has no attribute '_TensorLike'张量流中添加方法的问题:AttributeError:模块'tensorflow.python.framework.ops'没有属性'_TensorLike' 【发布时间】:2019-04-07 16:39:07 【问题描述】: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'))
-> 我在这一行遇到错误。我不确定我在这里缺少什么。
Traceback(最近一次调用最后一次):
文件“PycharmProjects/HW2/venv/bin/hw3q4.py”,第 46 行,在 model.add(Dense(hidden_neuron, input_dim=61, activation='relu')) 文件 "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/keras/engine/sequential.py", 第 165 行,添加 层(x)文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/keras/engine/base_layer.py”, 第 414 行,在 调用 self.assert_input_compatibility(输入)文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/keras/engine/base_layer.py”, 第 279 行,在 assert_input_compatibility K.is_keras_tensor(x) 文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py”, 第 472 行,在 is_keras_tensor 中 如果不是 is_tensor(x):文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py”, 第 480 行,在 is_tensor 中 返回 isinstance(x, tf_ops._TensorLike) 或 tf_ops.is_dense_tensor_like(x) AttributeError: 模块 'tensorflow.python.framework.ops' 没有属性 '_TensorLike'
【问题讨论】:
【参考方案1】:对于那些偶然发现此问题的人,重新安装 Keras 和 Tensorflow 可以解决此问题。
【讨论】:
实际上,这并不完全正确。这取决于 keras 和 tensorflow 版本的组合,因为keras
已集成到 tf 中,为 tensorflow.keras
。不过,您可以通过更新获得幸运。【参考方案2】:
对我来说,修复是导入
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Conv2D, Flatten, Dense
而不是
from keras import Sequential
from keras.layers import Conv2D, Flatten, Dense
keras 和 tensorflow.keras 之间似乎存在一些奇怪的兼容性问题
【讨论】:
为什么不同步 tf 和 keras 并从 keras 正确导入?【参考方案3】:您可以使用以下导入命令:
from tensorflow.keras.layers import ...
而不是'旧'一个:
from keras.layers import ....
如here.所述
【讨论】:
太棒了!你让我开心!【参考方案4】:只需更新 TensorFlow 和 Keras 即可解决问题
【讨论】:
【参考方案5】:这取决于您如何导入预备文件。 如果将 tensorflow 导入为 tf 并在 tensorflow 中导入 keras,则应从 tf.keras 开始。否则,如果您直接导入 keras.models,那么您可以从 Input() 或 Conv() 开始。
【讨论】:
【参考方案6】:这是由于版本不兼容。 将 keras 更新到与 tensorflow 兼容的最新版本:
pip install --upgrade keras==x.x.x
【讨论】:
【参考方案7】:!pip uninstall tensorflow
!pip install tensorflow==1.14
!pip uninstall keras
!pip install keras==2.2.4
安装上面版本的keras和tensorflow已经为我解决了这个问题。
【讨论】:
以上是关于张量流中添加方法的问题:AttributeError:模块'tensorflow.python.framework.ops'没有属性'_TensorLike'的主要内容,如果未能解决你的问题,请参考以下文章