【问题标题】:AttributeError: module 'tensorflow' has no attribute 'name_scope' with KerasAttributeError:模块 'tensorflow' 没有 Keras 的属性 'name_scope'
【发布时间】:2018-08-07 10:16:06
【问题描述】:

我正在尝试运行一个脚本,但我已经在导入时遇到了困难。 这个导入

from keras.preprocessing.image import save_img

引发以下错误:

AttributeError: module 'tensorflow' has no attribute 'name_scope'.

我正在使用以下软件包。

Keras                     2.2.2,                     
Keras-Applications        1.0.4,                   
Keras-Preprocessing       1.0.2,                   
tensorflow                1.9.0,                     
tensorflow-gpu            1.9.0                

【问题讨论】:

    标签: python tensorflow keras


    【解决方案1】:

    我无法使用相同版本的 keras 和 tensorflow 重现,重新安装 keras 和 tensorflow,可能会解决问题,请使用以下命令:

    pip install --upgrade pip setuptools wheel
    pip install -I tensorflow
    pip install -I keras
    

    注意:-I 参数代表忽略已安装的包。

    【讨论】:

    • 只是为了添加到这个答案中,name_scope 确实应该包含在 tf 1.9.0 中,因此安装似乎有些可疑。
    • @VegardKT 谢谢,是的,它肯定可用,我敢打赌这是安装问题。
    • 但是为什么呢?我现在使用这个环境一个星期来在 keras 中构建模型。可能是因为我今天安装了 tensorflow 服务?
    • 按照这些说明操作时,我收到错误消息“ImportError:Keras 需要 TensorFlow 2.2 或更高版本。通过 pip install tensorflow 安装 TensorFlow”。
    • @user3367130 我认为您在某个时候安装了较旧的 tensorflow 版本,您可以使用 pip freeze 检查版本
    【解决方案2】:

    对于所有使用 Tensorflow 2.0 并偶然发现这个问题并出现相同错误的人,就像我一样:我通过将导入从 keras.xxx 更改为 tensorflow.keras.xxx 解决了这个问题

    【讨论】:

      【解决方案3】:

      当我在执行时停止 IDE 时,我也遇到了同样的问题。重新启动我的 IDE 对我有用。只需保存您的程序并重新启动 IDE。希望它也对你有用。

      【讨论】:

        【解决方案4】:

        正如上面提到的Andriy Ivaneyko,重新安装tensorflow 会有所帮助。我不知道为什么,但是安装tensorflow-serving-api 会在某个地方破坏一些东西。我们通过运行解决了这个问题:

        pip install --force-reinstall tensorflow
        

        请注意,这适用于 tensorflow 和 tensorflow-gpu 安装。具体来说,上述命令将在您专门使用tensorlfow-gpu 的情况下解决此问题。 tensorflow-serving-api 安装常规的 tensorflow(如果尚未安装)。

        【讨论】:

          【解决方案5】:

          我遇到了同样的错误,重新安装 tensorflow 没有任何区别,这让我有些头疼。

          最终我注意到我的 IDE 自动完成功能在我的代码中添加了以下行:

          from tensorflow_core.python.keras.callbacks import EarlyStopping
          

          似乎直接引用tensorflow_core.python 会破坏tensorflow。

          将其替换为正常的 tensorflow 导入即可解决问题!

          from tensorflow.keras.callbacks import EarlyStopping
          

          【讨论】:

            【解决方案6】:

            我的 IDE 为我提供了两种不同的导入路径

            keras
            

            或

            tensorflow_core.python.keras
            

            在我的示例中,我可以像这样导入:

            from keras.layers import Dense, Dropout, LSTM, Input, Activation
            from keras import optimizers, Model
            

            或类似:

            from tensorflow_core.python.keras import Input, Model, optimizers
            from tensorflow_core.python.keras.layers import LSTM, Dropout, Dense
            

            混合 tensorflow_core.python.keras 和普通 keras 导致了我的问题。在我直接从 keras 和 keras.layers 导入所有内容后,它对我有用。

            【讨论】:

              【解决方案7】:

              我的 tensorflow 版本是 2.1,我发现我的 tensorflow-estimator 版本是 2.2

              我的解决方法是将估算器降级到相同版本

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2020-04-29
                • 1970-01-01
                • 2019-05-25
                • 1970-01-01
                • 2020-09-07
                • 2017-09-01
                • 1970-01-01
                • 2017-04-08
                相关资源
                最近更新 更多