训练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'
我通过将 keras.XXX 替换为 tensorflow.keras.XXX 来解决此问题
尝试更换
import keras.backend as K
到
import tensorflow.keras.backend as K
导入这个:
import tensorflow as tf
然后使用
tf.compat.v1.keras.backend.
作为您所需属性的前缀
我遇到了同样的错误并尝试安装和卸载。最后我发现这个库实际上没有安装正确。
我浏览了我的每个图书馆:
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
然后保存了。下次我运行我的代码时一切都很好。我建议对您的文件进行类似的操作,找到调用属性的位置并确保将其导入。
pip3 uninstall keras pip3 install keras --upgrade
在 Python 3.6 上安装 TensorFlow 1.14.0 + Keras 2.2.5 可以修复此问题
确保您的 keras 版本正确。如果你的后弯是张量流,你可以
import tensorflow as tf
print(tf.VERSION)
print(tf.keras.__version__)
获取正确版本的keras,然后安装这个版本,我通过这种方式解决了这个问题,希望我的回答可以帮助你。