繁体   English   中英

AttributeError:模块'tensorflow.python.keras.utils.generic_utils'没有属性'populate_dict_with_module_objects'

[英]AttributeError: module 'tensorflow.python.keras.utils.generic_utils' has no attribute 'populate_dict_with_module_objects'

当我导入 keras 时,即使昨天工作正常,也会弹出上面的错误。

如何解决此错误?

我正在研究 windows 10 我的 keras 版本是:2.2.4 我的 tensorflow 版本是:2.2.0rc2

完整的错误回溯如下所示:

Traceback (most recent call last):

    from keras import models
  File "C:\Users\world\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\__init__.py", line 3, in <module>

    from . import utils
  File "C:\Users\world\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\utils\__init__.py", line 6, in <module>

    from . import conv_utils

  File "C:\Users\world\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\utils\conv_utils.py", line 9, in <module>

    from .. import backend as K

  File "C:\Users\world\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\backend\__init__.py", line 1, in <module>

    from .load_backend import epsilon

  File "C:\Users\world\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\backend\load_backend.py", line 90, in <module>

    from .tensorflow_backend import *

  File "C:\Users\world\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\backend\tensorflow_backend.py", line 5, in <module>

    import tensorflow as tf

  File "C:\Users\world\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow\__init__.py", line 41, in <module>

    from tensorflow.python.tools import module_util as _module_util
  File "C:\Users\world\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow\python\__init__.py", line 84, in <module>

    from tensorflow.python import keras

  File "C:\Users\world\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow\python\keras\__init__.py", line 27, in <module>

    from tensorflow.python.keras import models

  File "C:\Users\world\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow\python\keras\models.py", line 24, in <module>

    from tensorflow.python.keras import metrics as metrics_module

  File "C:\Users\world\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow\python\keras\metrics.py", line 37, in <module>

    from tensorflow.python.keras.engine import base_layer

  File "C:\Users\world\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow\python\keras\engine\base_layer.py", line 51, in <module>

    from tensorflow.python.keras import initializers

  File "C:\Users\world\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow\python\keras\initializers\__init__.py", line 127, in <module>

    populate_deserializable_objects()
  File "C:\Users\world\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow\python\keras\initializers\__init__.py", line 85, in populate_deserializable_objects
    generic_utils.populate_dict_with_module_objects(
AttributeError: module 'tensorflow.python.keras.utils.generic_utils' has no attribute 'populate_dict_with_module_objects'

我有同样的问题,我已经成功解决了这个问题,将 tensorflow 版本降级到 2.1.0。

pip install tensorflow==2.1.0

from keras import models更改为from tensorflow.keras import models
这用 tensorflow 2.5.0 解决了我的问题

from keras.utils import _____更改

from tensorflow.python.keras.utils import _____

这在使用 TensorFlow 2.5.0 时对我有用

请从此链接(第 827 到 832 行)复制“populate_dict_with_module_objects”function 并将其添加到“generic_utils.py”

我在使用 Python 3.9 和 Tensorflow 2.5 时遇到了同样的问题。 对我来说问题是这两个还不兼容,因此,解决方案是安装 python 3.8,也可能将 Tensorflow 2.5 降级到 ZCB20B802A3F0255E054E4FB8821C5ED2。

我已经通过卸载 Keras 并更改我从 Keras 导入的任何内容来代替从tensorflow.Z063009BB15C827622207C导入来解决这个问题

所以这:

    from keras.preprocessing.image import load_img
    from keras.preprocessing.image import img_to_array
    from keras.applications.vgg16 import preprocess_input
    from keras.applications.vgg16 import decode_predictions
    from keras.applications.vgg16 import VGG16

变成了这样:

    from tensorflow.keras.preprocessing.image import load_img
    from tensorflow.keras.preprocessing.image import img_to_array
    from tensorflow.keras.applications.vgg16 import preprocess_input
    from tensorflow.keras.applications.vgg16 import decode_predictions
    from tensorflow.keras.applications.vgg16 import VGG16

然后我不必修改我工作的rest

tf.keras keras
使用库:

tensorflow-cpu==2.4.0
keras==2.4.0
import tensorflow as tf
from tensorflow import keras

将图层更改为:

keras.layers.Conv2D(512, (3, 3), activation='relu', padding='same')(pool4)
tf.keras.layers.Conv2D(512, (3, 3), activation='relu', padding='same')(pool4)

更改优化器:

keras.optimizers.Adam(lr=1e-5)
tf.keras.optimizers.Adam(lr=1e-5)

变更操作:

keras.concatenate
tf.concat
keras.flatten
tf.keras.flatten
keras.sum
tf.keras.sum

希望它可以帮助卡在那里的人!

%env SM_FRAMEWORK=tf.keras

在导入分割模型之前尝试此代码,它解决了我的问题。

替换: from keras.utils import generic_utils

与: from tensorflow.python.keras.utils import generic_utils

尝试使用此 pip 卸载 tf- nightly pip uninstall tf-nightly并检查python -c "import tensorflow" 希望这能解决问题

tensorflow-gpu==2.5.0 有这个问题

我认为问题是导致这两个文件(虚拟环境)之间的一些交互:

$ find env -name generic_utils.py
env/lib/python3.9/site-packages/tensorflow/python/keras/utils/generic_utils.py
env/lib/python3.9/site-packages/keras/utils/generic_utils.py

我将此导入添加到env/lib/python3.9/site-packages/keras/utils/generic_utils.py

from tensorflow.python.keras.utils.generic_utils import populate_dict_with_module_objects, to_snake_case

似乎奏效了。

见这里: https://github.com/keras-team/keras/issues/14657

如果使用 Google Colab,请在笔记本的开头运行此命令,以避免与 Colab 提供的默认版本冲突。 另请注意,如果 tensorflow 已安装,它将重新启动运行时。 因此,最好在笔记本的开头而不是在中间执行此操作。

!pip install tensorflow==2.1.0

I installed Tensorflow and Keras using pip install tensorflow pip install keras and I got the same error in tensorflow 2.5.0. 我卸载了两者并重新安装了conda install tensorflow conda install keras

这解决了我的错误。

尝试更换

tensorflow.python.keras.utils.generic_utils

这个链接

尝试使用:

pip install tensorflow --upgrade --force-reinstall

我升级了 keras 并且它工作。 我使用了这个命令:

> pip install --upgrade keras

您可能需要重新启动 kernel 才能看到效果。

而不是降级或任何其他解决方案,直接从 tensorflow.keras 导入

例如:而不是使用: from keras.models import Sequential使用: from tensorflow.keras.model import Sequential

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM