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

问题描述 投票:0回答:7

训练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'
python-3.x tensorflow keras
7个回答
14
投票

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

尝试更换

import keras.backend as K

import tensorflow.keras.backend as K

10
投票

导入这个:

import tensorflow as tf

然后使用

tf.compat.v1.keras.backend.
作为您所需属性的前缀


4
投票

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

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

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

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

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

from tensorflow.python.keras.backend import get_session

然后保存了。下次我运行我的代码时一切都很好。我建议对您的文件进行类似的操作,找到调用属性的位置并确保将其导入。


2
投票
pip3 uninstall keras
pip3 install keras --upgrade

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


0
投票

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


0
投票

我改变了这一行

from keras import backend as K

到这一行

from tensorflow.keras import backend as K

卸载/升级

keras
对我不起作用。


-3
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.