[英]repeated error : AttributeError: module 'tensorflow.python.keras.utils.generic_utils' has no attribute '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
似乎奏效了。
如果使用 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
这解决了我的错误。
尝试使用:
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.