AttributeError: module 'tensorflow' has no attribute 'get_default_graph'

发布时间 2023-10-09 22:41:42作者: emanlee

 

 

 

 

 

具体操作命令是:

创建一个python <3.8的虚拟环境。
conda create -n your_env_name python=3.6

激活并进入该环境。
activate your_env_name

安装1.x版本的tensorflow。
pip install tensorflow==1.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

查看tensorflow安装情况。
conda list


经过以上步骤,一个python3.6,tensorflow1.15版本的新环境,可运行
————————————————
链接:https://blog.csdn.net/qq_42711123/article/details/126725401

 

在使用tensorflow 2.0时,遇到了这个问题:
AttributeError: module ‘tensorflow’ has no attribute ‘get_default_graph’
这个报错的意思是:tensorflow模块没有get_default_graph属性
错误原因
这是由于Keras API(https://keras.io/)有多个实现,包括原始和参考实现(https://github.com/keras-team/keras),还有各种其他实现,包括tf.keras,它是TensorFlow的一部分。
由于TensorFlow 2默认为急切执行,因此Keras需要进行一些更改才能与之兼容
解决方法
    方法一:
    将参考实现与TensorFlow后端一起使用。但是,此实现尚未更新以支持TensorFlow 2(截至2019年6月)。
    方法二:
    使用TensorFlow的实现,tf.keras。这个适用于TF 2。
    例如你需要使用tf.keras,必须确保使用正确的导入:

from tensorflow import keras
而不是直接使用:import keras
同样,在要使用keras下的其他模块时:
from tensorflow.keras import layers
而不是使用 from keras import layers
链接:https://blog.csdn.net/public669/article/details/99686151

 

出现报错:AttibuteError: module ‘tensorflow’ has no attribute ‘get_default_graph’.

该报错的意思是:tensorflow模块没有get_default_graph属性。

这是由于Keras API(https://keras.io/)有多个实现,包括原始和参考实现(https://github.com/keras-team/keras),还有各种其他实现,包括tf.keras,它是TensorFlow的一部分。
由于TensorFlow 2默认为急切执行,TF2中集成了keras,因此Keras需要进行一些更改才能与之兼容。

解决方法
from tensorflow import keras
而不是直接使用:import keras

from tensorflow.keras import layers
而不是使用 from keras import layers


如果不同代码文件之间有相互嵌套,只修改当前python文件可能还是会出现同样的报错信息:
AttibuteError: module ‘tensorflow’ has no attribute ‘get_default_graph’.

此时可以直接看代码找到嵌套的文件进行修改。
也可以先卸载原来的keras包查看哪里还有问题。
在终端中输入

pip uninstall keras

出现报错信息:ModuleNotFoundError: no module named ‘keras’
留意详细报错信息中 Keras 出现的具体文件和对应的位置,逐个进行修改。
如下图就是在segnet.py中还有没有修改成tensorflow.keras的地方。
在这里插入图片描述
修改完成后保存,再运行就不会再报错了。
链接:https://blog.csdn.net/weixin_49034139/article/details/121545207