How to fix ' module 'keras.backend.tensorflow_backend' has no attribute '_is_tf_1''

狂风中的少年 提交于 2021-01-02 05:37:03

问题


While training the yolov3 framework, there's always this module error

I have tried reinstalling keras and tensorflow, and the version of keras is 2.3.0 and the version of tensorflow is 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'

回答1:


pip3 uninstall keras
pip3 install keras --upgrade

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




回答2:


import -> import tensorflow as tf

then use tf.compat.v1.keras.backend. as prefix of your desired attribute




回答3:


I fix this problem by replacing keras.XXX to tensorflow.keras.XXX

try replace

import keras.backend as K

to

import tensorflow.keras.backend as K



回答4:


I had the same error and tried installing and uninstalling. In the end, I found that the library was not actually installed correctly.

I went through each library in my:

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

I tracked down the file in within the site-packages in Keras, which was calling from the Tensorflow library, which was calling from another folder. I found the final folder had the get_session(), but this was not being called in. When I checked the directory, I found that get_session wasn't being loaded in. Within the file directory /tensorflow/keras/backend.py it was importing everything, but missed out the get_session.

To fix this I added this line:

from tensorflow.python.keras.backend import get_session

Then saved it. The next time I ran my code it was fine. I would suggest doing similar with your files, locating where the attribute is called in and making sure it is being imported.




回答5:


make sure your keras version is right. if your backbend is tensorflow,you can

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

get the right version of keras,then install this version,I fix this problem by this way,i hope my answer can help you.



来源:https://stackoverflow.com/questions/58047454/how-to-fix-module-keras-backend-tensorflow-backend-has-no-attribute-is-tf

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!