【问题标题】:ImportError: cannot import name 'LayerNormalization' from 'tensorflow.python.keras.layers.normalization' , getting this error on colab?ImportError: cannot import name 'LayerNormalization' from 'tensorflow.python.keras.layers.normalization' ,在 colab 上出现此错误?
【发布时间】:2021-10-22 15:38:10
【问题描述】:

我正在尝试使用 Tensorflow 对象检测 API 构建对象检测模型,并且我正在 Colab 上执行此操作。但是当我导入 Tensorflow 时,我得到了这个错误,我认为这是因为不同版本之间的兼容性问题。 更让我困惑的是,它以前运行良好,我也设法做了一些项目,但今天突然我遇到了这个问题。

我正在使用以下版本 蟒蛇3.7 张量流-GPU 2.4.1

这是我得到的错误:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-28-f83c6d50081b> in <module>()
----> 1 import tensorflow as tf
      2 print(tf.__version__)

5 frames
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/layers/__init__.py in <module>()
    175 
    176 # Normalization layers.
--> 177 from tensorflow.python.keras.layers.normalization import LayerNormalization
    178 from tensorflow.python.keras.layers.normalization_v2 import SyncBatchNormalization
    179 

ImportError: cannot import name 'LayerNormalization' from 'tensorflow.python.keras.layers.normalization' (/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/layers/normalization/__init__.py)

---------------------------------------------------------------------------
NOTE: If your import is failing due to a missing package, you can
manually install dependencies using either !pip or !apt.

To view examples of installing some common dependencies, click the
"Open Examples" button below.

【问题讨论】:

  • 您是如何(以及为什么)安装 tf 2.4.1 的?

标签: python python-3.x tensorflow keras


【解决方案1】:

根据documentation,它应该是tf.keras.layers.LayerNormalization

【讨论】:

    【解决方案2】:

    看看这里: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/keras/layers/normalization/layer_normalization.py 没有任何东西可以导出到“规范化”,好像你不能再从那里导入了。它甚至不是一个包, init 是空的。它只是一个簿记文件夹。

    使用

    import tensorflow as tf
    tf.keras.layers.LayerNormalization
    

    from tensorflow.keras.layers import LayerNormalization
    

    【讨论】:

    • 你可以直接查看colab上的文件。方便使用左侧的“文件”选项卡,然后下载 normalization.py 并查看内容是如何导出的。对我来说,路径是 /tensorflow-1.15.2/python3.7/keras/layers/normalization.py
    • /usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/layers/normalization 编辑:我认为这是正确的地方
    【解决方案3】:

    你的导入方式不对,“tensorflow.keras.layers”中没有“规范化”模块

    应该这样做。

    from tensorflow.keras.layers import LayerNormalization
    

    或者像这样,

    from tensorflow.keras import layers
    
    def exp():
        u = layers.LayerNormalization() 
    

    希望对你有所帮助..

    【讨论】:

      【解决方案4】:

      回答我自己的问题: 在查看了几个解决方案后,问题仍然存在,最终我不得不转向 Tensorflow 2.6,我不知道为什么执行速度太慢。以前开始训练大约需要 2 分钟,现在在 Tensorflow 2.6 上完成几个步骤需要几个小时。请随时提出 TF 2.4.1 面临此问题的原因

      【讨论】:

        【解决方案5】:

        在 Windows 10 上的 python 3.8 中的 conda 环境中安装 tensorflow 时出现此错误。我通过卸载 tensorflow 并在 conda env 中使用 pip 重新安装来解决此错误。似乎 tensorflow 无法控制基于 Anaconda 的构建。 See related issue

        【讨论】:

          【解决方案6】:

          试试 !pip install tensorflow==2.3.0

          【讨论】:

            【解决方案7】:

            试试

            pip install tensorflow==2.4
            

            pip install tensorflow-gpu==2.4
            

            【讨论】:

            • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
            猜你喜欢
            • 2021-05-13
            • 1970-01-01
            • 2022-08-15
            • 2019-07-20
            • 2020-07-16
            • 2019-06-10
            • 2014-09-25
            • 2014-01-02
            • 1970-01-01
            相关资源
            最近更新 更多