模块未找到错误:找不到名为'keras.backend.tensorflow_backend'的模块

5

我正在尝试运行代码

import keras

我得到了这个堆栈跟踪。 我尝试重新安装keras和tensorflow,但没有任何作用。 这里是堆栈跟踪。

ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-10-88d96843a926> in <module>
----> 1 import keras

~\Anaconda3\lib\site-packages\keras\__init__.py in <module>
      1 from __future__ import absolute_import
      2 
----> 3 from . import utils
      4 from . import activations
      5 from . import applications

~\Anaconda3\lib\site-packages\keras\utils\__init__.py in <module>
      4 from . import data_utils
      5 from . import io_utils
----> 6 from . import conv_utils
      7 from . import losses_utils
      8 from . import metrics_utils

~\Anaconda3\lib\site-packages\keras\utils\conv_utils.py in <module>
      7 from six.moves import range
      8 import numpy as np
----> 9 from .. import backend as K
     10 
     11 

~\Anaconda3\lib\site-packages\keras\backend\__init__.py in <module>
----> 1 from .load_backend import epsilon
      2 from .load_backend import set_epsilon
      3 from .load_backend import floatx
      4 from .load_backend import set_floatx
      5 from .load_backend import cast_to_floatx

~\Anaconda3\lib\site-packages\keras\backend\load_backend.py in <module>
     88 elif _BACKEND == 'tensorflow':
     89     sys.stderr.write('Using TensorFlow backend.\n')
---> 90     from .tensorflow_backend import *
     91 else:
     92     # Try and load external backend.

ModuleNotFoundError: No module named 'keras.backend.tensorflow_backend'

你是怎么安装Keras的?代码本身似乎有问题,这可能是因为你安装了非官方版本或者从非官方来源安装的缘故。 - Dr. Snoopy
@MatiasValdenegro 我已经在Jupyter Notebook中使用!pip install keras安装了Keras。 - kriti
我会彻底卸载Anaconda并在您的系统Python上安装Keras。Anaconda可能会破坏某些东西。 - Dr. Snoopy
8个回答

8

使用类似于...的东西不如...

    from keras.backend.tensorflow_backend import set_session

试着像这样使用它

    from keras.backend import set_session

谢谢分享这个技巧。在我的代码中起作用了。我只是想知道它是否完全向后兼容。或者有些功能可能不可用吗? - Cloud Cho

7

尝试:

pip install tensorflow==2.2.0

然后

pip install Keras==2.2.0

这对我来说适用于Python 3.7。


3
在Tensorflow 2.0.0+版本中,你应该在tf后面加上"compat.v1",不再使用"tensorflow_backend"名称。就像这样:
tf.keras.backend.tensorflow_backend.set_session() -> tf.compat.v1.keras.backend.set_session()

这真的有效吗?我刚试了一下,但没有运气。我只收到了这个消息:TypeError: set_session()缺少1个必需的位置参数:'session' - kentropy
@kennentropy 对我有用。它可能会因为你使用的环境和获取模块的位置而发生变化。我使用的是Win 10 Home,通过pip安装了模块,Python版本为3.8.5。看起来Tensorflow对这一点不太清楚。 - Ege
嗨,谢谢你的回复。我终于把它弄好了,但我所做的是将 TensorFlow 降级到版本 1.13.1,运行 Python 2.7 和 Keras 2.0.1。 - kentropy
我想当时我使用的是Python 3.7版本。 - Ege

2

我尝试使用anaconda或pip安装tensorflow和keras,但每种方法都遇到了相同的问题。

最后我发现问题是因为tensorflow或keras的版本。当我安装tensorflow==2.2和keras==2.4.3(最新版)时,无论使用哪种工具都会遇到此问题。当我安装tensorflow==1.14和keras==2.2时,代码可以正常运行。

我的python版本是ubuntu 16.04下的3.5.2。


直到我从Anaconda Navigator中安装了Keras,这两种方法在此时都对我无效。 - Arthur

2

只需安装tensorflow 2.1.0或2.2.0,它已经内置了Keras。不要混用pipconda。继续你已经开始的工作。

pip install tensorflow==2.2.0

或者,

conda install tensorflow==2.2.0

你是在建议依次运行 pip installconda install 吗? - desertnaut
我不建议混合使用它们。如果你选择了conda,就继续使用conda。同样地,如果你选择其他工具,也应该坚持使用它。 - vagitus
是的,但在你的回答中,似乎建议按顺序运行它们;请更新以澄清。 - desertnaut

0
在我的情况下,问题通过安装特定版本的Keras进行解决。
pip install Keras==2.2.4

0

对于tensorflow==2.4.1,这个可以工作:

from tensorflow.python.keras.backend import set_session 

0

卸载Keras并在您的系统中重新安装版本2.2.0,它一定可以与Tensorflow 2.2一起正常工作。然后您就不必降级您的tensorflow,也就是说不用再改变代码了;)

pip uninstall keras
pip install Keras==2.2.0

对于我的情况,我使用的是Python 3.7(最新的错误修复版本)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接