【问题标题】:ImportError: cannot import name 'get_config' from 'tensorflow.python.eager.context'ImportError:无法从“tensorflow.python.eager.context”导入名称“get_config”
【发布时间】:2021-07-01 23:48:37
【问题描述】:

我的笔记本一直工作到今天。在我的 colab 笔记本开始时,我安装了 tf-nightly,但现在它给了我这个错误

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-589c442233c5> in <module>()
      7 import tensorflow as tf
      8 from tensorflow.keras import datasets, layers, models
----> 9 from keras.preprocessing import image
     10 from keras_preprocessing.image import ImageDataGenerator #check underscore or not
     11 from tensorflow.keras.preprocessing import image_dataset_from_directory

2 frames
/usr/local/lib/python3.7/dist-packages/keras/backend.py in <module>()
     35 from tensorflow.python.distribute import distribute_coordinator as dc
     36 from tensorflow.python.distribute import distribute_coordinator_context as dc_context
---> 37 from tensorflow.python.eager.context import get_config
     38 from tensorflow.python.framework import config
     39 from keras import backend_config

ImportError: cannot import name 'get_config' from 'tensorflow.python.eager.context' (/usr/local/lib/python3.7/dist-packages/tensorflow_core/python/eager/context.py)

这是我的代码:

!pip install tf-nightly

import tensorflow as tf
from tensorflow.keras import datasets, layers, models
from keras.preprocessing import image
from keras_preprocessing.image import ImageDataGenerator
from tensorflow.keras.preprocessing import image_dataset_from_directory
from keras.callbacks import Callback, ModelCheckpoint, ReduceLROnPlateau, EarlyStopping

我已尝试安装 tensorflow==2.1.0,但也没有成功。如果我注释掉一个导入,我只会在下一行收到另一个错误,而且我无法在网上找到很多关于此的内容。任何帮助将不胜感激!

【问题讨论】:

  • 如果不需要,请卸载 tf-nightly。
  • 我在尝试从 keras.utils.np_utils 导入 to_categorical() 方法时遇到了同样的问题。我没有找到直接的解决方案,但我设法通过从 tensorflow.keras.utils 导入来绕过错误...

标签: python tensorflow keras


【解决方案1】:

代替

import keras

试试

from tensorflow import keras 

这对我有用!

【讨论】:

  • 立即工作
【解决方案2】:

这些命令解决了这个问题:

pip install --upgrade tensorflow
pip install --upgrade tensorflow-gpu

【讨论】:

    【解决方案3】:

    我有 Tensorflow===2.2.0,当我将其更新为 Tensorflow==2.4.0 时,出现了这个问题。

    我认为keras.models.load_model 和您正在使用的tensorflow 的基本版本存在冲突。

    尝试运行 -

    import tensorflow as tf
    tf.keras.models.load_model(model_path)
    

    它对我有用。

    【讨论】:

      【解决方案4】:

      这个奇怪的问题对应于 tensorflow 的导入。如果您将from keras.preprocessing import image 更改为from tensorflow.keras.preprocessing import image,它将起作用。

      【讨论】:

        【解决方案5】:

        在我使用 Google colab 的情况下,我将 tensorflow 降级为 2.2,并将所有 import keras.xxxx 替换为 import tensorflow.keras.xxxx。这样就解决了。

        【讨论】:

          【解决方案6】:

          而不是 from keras.preprocessing import image 做这个: from tensorflow.keras.preprocessing import image

          【讨论】:

            【解决方案7】:

            我刚刚自己解决了这个问题。

            # Instead of this:
            from keras.preprocessing import image
            
            # Do this:
            from tensorflow.keras.preprocessing import image
            

            【讨论】:

              【解决方案8】:
              pip install --upgrade tensorflow
              pip install --upgrade tensorflow-gpu
              

              有效,但会干扰 Tensorflow/NVIDIA CUDA Toolkit/NVIDIA cuDNN GPU 支持设置。 更好的解决方案:卸载 Keras 2.6.0, 安装 Keras 2.4.3

              错误已修复,GPU 正在运行!

              【讨论】:

                【解决方案9】:

                试试 Keras 2.3.1 的版本

                pip install keras==2.3.1

                然后也安装它

                pip install git+https://www.github.com/keras-team/keras-contrib.git

                【讨论】:

                  【解决方案10】:

                  我已经更新了

                  from keras.preprocessing.image import ImageDataGenerator
                  from keras.preprocessing.image import img_to_array, load_img
                  from keras import layers, models, optimizers
                  from keras import backend as K
                  

                  from tensorflow.keras.preprocessing.image import ImageDataGenerator
                  from tensorflow.keras.preprocessing.image import img_to_array, load_img
                  from tensorflow.keras import layers, models, optimizers
                  from tensorflow.keras import backend as K
                  

                  它有效:)

                  【讨论】:

                    【解决方案11】:

                    在我的情况下,我从以下更改了导入:

                    from keras.preprocessing.image import ImageDataGenerator
                    

                    到这里:

                    from tensorflow.keras.preprocessing.image import ImageDataGenerator
                    

                    【讨论】:

                    • from keras.preprocessing.image import ImageDataGenerator - 使用 from tensorflow.keras.preprocessing.image import ImageDataGenerator 更改它
                    • 请使用问题帖子下的 cmets 部分来获取“未回答”的 cmets,例如“在我的情况下,我更改为并且它对我有用。”,谢谢!
                    猜你喜欢
                    • 2021-10-12
                    • 2021-11-21
                    • 1970-01-01
                    • 2022-01-22
                    • 2021-06-30
                    • 2020-10-19
                    • 2018-08-13
                    • 2015-01-26
                    • 2020-10-10
                    相关资源
                    最近更新 更多