AttributeError:模块“tensorflow.python.keras.backend”没有属性“get_graph”

Posted

技术标签:

【中文标题】AttributeError:模块“tensorflow.python.keras.backend”没有属性“get_graph”【英文标题】:AttributeError: module 'tensorflow.python.keras.backend' has no attribute 'get_graph' 【发布时间】:2020-03-16 17:08:48 【问题描述】:

我一直在研究用于物体检测的 keras yolov3 模型。这个错误不断出现。 这是错误:

AttributeError: module 'tensorflow.python.keras.backend' has no attribute 'get_graph'

我不知道该怎么办。我尝试将“import keras.module.module”替换为“tensorflow.keras.module.module”。但是还是不行。

完整的输出代码:

runfile('G:/Traffic Violation Detection/object_detection.py', wdir='G:/Traffic Violation Detection')
Using TensorFlow backend.
Traceback (most recent call last):

  File "<ipython-input-3-0715decb6662>", line 1, in <module>
    runfile('G:/Traffic Violation Detection/object_detection.py', wdir='G:/Traffic Violation Detection')

  File "C:\Users\HP-NPC\Anaconda3\envs\virtual_platform\lib\site-packages\spyder\utils\site\sitecustomize.py", line 710, in runfile
    execfile(filename, namespace)

  File "C:\Users\HP-NPC\Anaconda3\envs\virtual_platform\lib\site-packages\spyder\utils\site\sitecustomize.py", line 101, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "G:/Traffic Violation Detection/object_detection.py", line 6, in <module>
    from keras.layers.merge import add, concatenate

  File "C:\Users\HP-NPC\Anaconda3\envs\virtual_platform\lib\site-packages\keras\__init__.py", line 3, in <module>
    from . import utils

  File "C:\Users\HP-NPC\Anaconda3\envs\virtual_platform\lib\site-packages\keras\utils\__init__.py", line 6, in <module>
    from . import conv_utils

  File "C:\Users\HP-NPC\Anaconda3\envs\virtual_platform\lib\site-packages\keras\utils\conv_utils.py", line 9, in <module>
    from .. import backend as K

  File "C:\Users\HP-NPC\Anaconda3\envs\virtual_platform\lib\site-packages\keras\backend\__init__.py", line 1, in <module>
    from .load_backend import epsilon

  File "C:\Users\HP-NPC\Anaconda3\envs\virtual_platform\lib\site-packages\keras\backend\load_backend.py", line 90, in <module>
    from .tensorflow_backend import *

  File "C:\Users\HP-NPC\Anaconda3\envs\virtual_platform\lib\site-packages\keras\backend\tensorflow_backend.py", line 54, in <module>
    get_graph = tf_keras_backend.get_graph

AttributeError: module 'tensorflow.python.keras.backend' has no attribute 'get_graph'

我的进口:

import numpy as np
from tensorflow.keras.layers import Conv2D, Input, BatchNormalization, LeakyReLU, ZeroPadding2D, UpSampling2D
from keras.layers.merge import add, concatenate
from tensorflow.keras.models import Model
import struct
import cv2
import imageio

完整代码请访问:https://colab.research.google.com/drive/1oVR7swBqjfqxR50C3xt89w1vGEAaTFcK#scrollTo=rpSn_HsUHbGF

【问题讨论】:

显示你写的一些代码 请看how to create a minimal, complete, and reproducible example。 我已将链接添加到我的代码中。 @AccLok 【参考方案1】:

“YOLOv3 对象检测模型”项目存在版本问题。我有同样的问题,我使用了 tensorflow 1.14.0 和 keras 2.2.0。

只需覆盖特定版本。写在命令行里。

pip install tensorflow==1.14.0
pip install keras==2.2.0

【讨论】:

为此我讨厌 TensorFlow。没有任何东西适用于单一版本。即使版本更改很小,也会有大事发生。 完全同意。 TensorFlow 被广泛使用。它在版本更改方面应该是兼容的。 @PrameshBajracharya【参考方案2】:

我使用pip install tensorflow==1.14.0 安装了tensorflow v1.14.0,使用pip install keras==2.2.0 安装了keras v2.2.0,它肯定可以工作。

【讨论】:

以上是关于AttributeError:模块“tensorflow.python.keras.backend”没有属性“get_graph”的主要内容,如果未能解决你的问题,请参考以下文章

AttributeError:模块'keras'没有属性'initializers'

AttributeError:模块'asyncio'没有属性'run'

AttributeError:模块'mysql'没有属性'connector'

AttributeError:“模块”对象没有属性“作者”

AttributeError:模块 'urllib' 没有属性 'parse'

AttributeError:模块“cupy”没有属性“cupyx”