如何修复'模块'keras.backend.tensorflow_backend'没有属性'_is_tf_1''

时间:2019-09-22 08:34:26

标签: python-3.x tensorflow keras

在训练yolov3框架时,始终会出现此模块错误

我尝试重新安装keras和tensorflow,而keras的版本为2.3.0,而tensorflow的版本为1.14.0。

Traceback (most recent call last):
  File "train.py", line 6, in <module>
    import keras.backend as K
  File "F:\Anacoda\lib\site-packages\keras\__init__.py", line 3, in <module>
    from . import utils
  File "F:\Anacoda\lib\site-packages\keras\utils\__init__.py", line 27, in <module>
    from .multi_gpu_utils import multi_gpu_model
  File "F:\Anacoda\lib\site-packages\keras\utils\multi_gpu_utils.py", line 7, in <module>
    from ..layers.merge import concatenate
  File "F:\Anacoda\lib\site-packages\keras\layers\__init__.py", line 4, in <module>
    from ..engine.base_layer import Layer
  File "F:\Anacoda\lib\site-packages\keras\engine\__init__.py", line 8, in <module>
    from .training import Model
  File "F:\Anacoda\lib\site-packages\keras\engine\training.py", line 21, in <module>
    from . import training_arrays
  File "F:\Anacoda\lib\site-packages\keras\engine\training_arrays.py", line 14, in <module>
    from .. import callbacks as cbks
  File "F:\Anacoda\lib\site-packages\keras\callbacks\__init__.py", line 19, in <module>
    if K.backend() == 'tensorflow' and not K.tensorflow_backend._is_tf_1():
AttributeError: module 'keras.backend.tensorflow_backend' has no attribute '_is_tf_1'

6 个答案:

答案 0 :(得分:7)

import->将tensorflow导入为tf

然后使用 tf.compat.v1.keras.backend. 作为所需属性的前缀

答案 1 :(得分:1)

我遇到了同样的错误并尝试安装和卸载。最后我发现这个库实际上并没有正确安装。

我浏览了我的每个图书馆:

C:\Users\MyName\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\

我在 Keras 的站点包中找到了该文件,该文件是从 Tensorflow 库调用的,该库是从另一个文件夹调用的。我发现最后一个文件夹有 get_session(),但它没有被调用。当我检查目录时,我发现 get_session 没有被加载。在文件目录 /tensorflow/keras/backend.py 中它是导入所有内容,但错过了 get_session。

为了解决这个问题,我添加了这一行:

from tensorflow.python.keras.backend import get_session

然后保存它。下次我运行我的代码时就好了。我建议对你的文件做类似的处理,找到调用属性的位置并确保它被导入。

答案 2 :(得分:0)

我通过将keras.XXX替换为tensorflow.keras.XXX来解决此问题

尝试替换

import keras.backend as K

import tensorflow.keras.backend as K

答案 3 :(得分:0)

确保您的keras版本正确。如果您的后弯是张量流,则可以

import tensorflow as tf
    print(tf.VERSION)
    print(tf.keras.__version__)

获取正确的keras版本,然后安装该版本,我通过这种方式解决了这个问题,希望我的回答对您有所帮助。

答案 4 :(得分:0)

在 Python 3.6 上安装 TensorFlow 1.14.0 + Keras 2.2.5 可修复此问题

答案 5 :(得分:-1)

pip3 uninstall keras
pip3 install keras --upgrade

https://github.com/keras-team/keras/issues/13352