AttributeError:模块“tensorflow”没有属性“reset_default_graph”

Posted

技术标签:

【中文标题】AttributeError:模块“tensorflow”没有属性“reset_default_graph”【英文标题】:AttributeError: module 'tensorflow' has no attribute 'reset_default_graph' 【发布时间】:2017-04-08 12:19:50 【问题描述】:

我已经安装了 TensorFlow 版本 r0.11。

在我的文件名cartpole.py我已经导入tensorflow

 import tensorflow as tf  

并使用它:

 tf.reset_default_graph()

尝试在 PyCharm 中运行我的项目时出现此错误:

in <module>
tf.reset_default_graph()
AttributeError: module 'tensorflow' has no attribute 'reset_default_graph'

我该如何解决这个错误?

【问题讨论】:

您能提供更多代码吗?我感觉你可能没有正确导入东西 或者你可能已经在项目中命名了一个文件tensorflow.py 【参考方案1】:

此功能已弃用。 请改用tf.compat.v1.reset_default_graph()

更新 这不是唯一过时的功能。查看this answer 以获取发行说明和转换脚本。

【讨论】:

这正是接受的答案所说的,所以你的答案是多余的 在这个线程上?接受的答案表明可能存在另一个名为tensorflow.py 的文件。您可能的意思是我的答案与我链接到的线程中接受的答案一致。在这种情况下,它不是多余的(此处,在此页面上),因为它包含指向更健康解决方案的链接。 是的,你是对的,接受的答案实际上并没有解决问题,这是实际的答案【参考方案2】:

你通常通过写来导入tensorflow

import tensorflow as tf

您可能在项目中将一个文件命名为tensorflow.py,而import 语句正在从该文件导入。

或者,你可以试试这个,

from tensorflow.python.framework import ops
ops.reset_default_graph()

【讨论】:

我试过这个你的提示。但发生了这种情况:命令“python setup.py egg_info”失败,错误代码为 1 我使用过:pip install --upgrade setuptools 或 easy_install -U setuptools 但没有任何帮助。 我的文件名为 cartpole.py 我已导入:import tensorflow as tf 并使用 tf.reset_default_graph()我> 您应该将这些详细信息添加到您的问题中。我认为这是 PyCharm 特有的问题。您是否尝试过在不同的文件夹中打开 python 终端并输入 import tensorflow as tf; tf.reset_default_graph() 我已经解决了一个问题,谢谢!问题出在python版本中。它默认运行 2.7,当我的项目在 3.5.2 版本上运行时,当你运行像 python3 这样的项目然后使用 tensoreflow 时它运行良好,我也制作了 python 版本默认3.5.2 @magnp 我建议您为此编写自己的答案。使用 Python 3 对我也有帮助。【参考方案3】:

我已经尝试并成功移除了属性错误

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D
from tensorflow.keras.layers import MaxPool2D
from tensorflow.keras.layers import Flatten
from tensorflow.keras.layers import Dense

classifier = Sequential()

【讨论】:

【参考方案4】:

将您的导入更改为 tensorflow.keras 例如 从 keras 导入顺序 到 从 tensorflow.keras 导入顺序

【讨论】:

【参考方案5】:

变化:

import keras.<something>.<something>

到:

import tensorflow.keras.<something>.<something>

'something' 是你要导入的模块

【讨论】:

【参考方案6】:

实际上,this answer 将解决所有与 TF 1.x 相关的问题。

通过使用以下方法在 TF 2.0 中获得类似 TF 1.x 的行为:

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

【讨论】:

【参考方案7】:

我正在添加此文本,以便像我这样的人 - 他们可能拥有 2018 年的旧代码,但使用 tensorflow 最新版本失败。

我的情况是,2018 年使用的版本是 1.x 截至撰写本文时,最新的是 2.x

所以,当我运行存储在 google colab 中的代码时,它实际上失败了,错误是找不到 tensorflow.contrib 模块

为此,您可以执行以下提到的魔法:

https://colab.research.google.com/notebooks/tensorflow_version.ipynb#scrollTo=NeWVBhf1VxlH

基本上在您的 jupyter notebook 单元中,只需在顶部的单独单元中运行

%tensorflow_version 1.x

我猜这会将您的 tensorflow 版本切换到 1.15.2

然后你的旧代码仍然会像魅力一样工作:)

【讨论】:

【参考方案8】:

这也可能导致您在错误的环境中运行代码。

我在我的~/tensorflow virtualenv 中安装了 tensorflow-gpu。

我可以在带有source ./tensorflow/bin/activate的环境中运行python3 code.py

但是当我在没有 virtualenv 的环境 ~ 中运行 python3 code.py 时,我有时可能会遇到类似

的问题

AttributeError: 模块 'tensorflow' 没有属性 'reset_default_graph'

AttributeError: 模块 'tensorflow' 没有属性 'Session'

还有一些人

【讨论】:

【参考方案9】:

而不是直接从keras导入

从 keras.layers 导入输入

从张量流导入

从 tensorflow.keras.layers 导入输入

我遇到了两次这个问题,上面的一个解决了我的问题

【讨论】:

这如何回答这个问题?【参考方案10】:

下载 TensorFlow 的二进制版本解决了我的问题。

$ pip install --ignore-installed --upgrade "<URL>"

从下方根据您的系统选择正确的二进制 URL。https://github.com/lakshayg/tensorflow-build

【讨论】:

谢谢!这种升级 tensorflow 的解决方案为我消除了错误。但我已经“卸载”并重新“安装”而不是 --upgrade 选项。【参考方案11】:

如果您使用的是 tf 2.0 测试版,请确保您的所有 keras 导入都是 tensorflow.keras...任何 keras 导入都将采用假定 tensorflow 1.4 的标准 keras 包。

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, InputLayer 

【讨论】:

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

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

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

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

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

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

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