【问题标题】:AttributeError: module 'tensorflow' has no attribute 'reset_default_graph'AttributeError:模块“tensorflow”没有属性“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

标签: python tensorflow pycharm


【解决方案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 
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2020-02-04
                • 2020-02-12
                • 2019-01-10
                • 2019-10-01
                • 2017-05-11
                • 2019-08-09
                • 2021-06-23
                相关资源
                最近更新 更多