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'