TF Keras:属性错误:类型对象'h5py.h5.H5PYConfig'没有属性'__reduce_cython__'



我使用以下代码加载预训练模型:

import tensorflow as tf
from config import max_letters, language_tags
import numpy as np
# max_letters = 12
# language_tags = 5
network = tf.keras.Sequential()
network.add(tf.keras.layers.Dense(200, input_dim=26*max_letters, activation='sigmoid'))
network.add(tf.keras.layers.Dense(150, activation='sigmoid'))
network.add(tf.keras.layers.Dense(100, activation='sigmoid'))
network.add(tf.keras.layers.Dense(100, activation='sigmoid'))
network.add(tf.keras.layers.Dense(len(language_tags), activation='softmax'))
network.load_weights('weights.hdf5')
network.compile(loss='binary_crossentropy', optimizer='sgd', metrics=['accuracy'])

但是我得到以下错误:

Traceback (most recent call last):
File "C:/Users/loose/PycharmProjects/translate_english_german/python/network_test.py", line 1, in <module>
import tensorflow as tf
File "C:Usersloose.condaenvstflibsite-packagestensorflow__init__.py", line 41, in <module>
from tensorflow.python.tools import module_util as _module_util
File "C:Usersloose.condaenvstflibsite-packagestensorflowpython__init__.py", line 47, in <module>
from tensorflow.python import keras
File "C:Usersloose.condaenvstflibsite-packagestensorflowpythonkeras__init__.py", line 27, in <module>
from tensorflow.python.keras import models
File "C:Usersloose.condaenvstflibsite-packagestensorflowpythonkerasmodels.py", line 26, in <module>
from tensorflow.python.keras.engine import functional
File "C:Usersloose.condaenvstflibsite-packagestensorflowpythonkerasenginefunctional.py", line 38, in <module>
from tensorflow.python.keras.engine import training as training_lib
File "C:Usersloose.condaenvstflibsite-packagestensorflowpythonkerasenginetraining.py", line 53, in <module>
from tensorflow.python.keras.saving import hdf5_format
File "C:Usersloose.condaenvstflibsite-packagestensorflowpythonkerassavinghdf5_format.py", line 41, in <module>
import h5py
File "C:Usersloose.condaenvstflibsite-packagesh5py__init__.py", line 34, in <module>
from . import version
File "C:Usersloose.condaenvstflibsite-packagesh5pyversion.py", line 17, in <module>
from . import h5 as _h5
File "h5pyh5.pyx", line 41, in init h5py.h5
AttributeError: type object 'h5py.h5.H5PYConfig' has no attribute '__reduce_cython__'
我使用Python 3.8TF 2.5.0。我有一个不同的项目,我加载一个模型与tf.keras.load_model()而不是tf.keras.Sequential.load_weights()工作良好。所以TF本身在另一个项目中工作正常。我已经尝试了一堆不同版本的h5py但没有一个奏效。除了重新安装TF(因为让它在RTX 3080上工作绝对是一个痛苦的过程),还有什么主意吗?这是我使用的权重文件。

这是因为您需要安装一些必需的TensorFlow依赖项来保存HDF5格式的模型并加载那些HDF5文件。

尝试使用下面的代码安装h5py库以支持HDF5文件::

!pip install pyyaml h5py

pip install --upgrade h5py

最新更新