使用keras加载模型文件时出错



当我试图将.h5文件加载到变量中时,我会收到此错误

File "C:UsersuserDesktopDiplomskifaceVerify1.py", line 72, in <module>
model = load_model('facenet_keras.h5')
File "C:Usersuseranaconda3envstflibsite-packageskerasenginesaving.py", line 492, in load_wrapper
include_optimizer: If True, save optimizer's state together.
File "C:Usersuseranaconda3envstflibsite-packageskerasenginesaving.py", line 584, in load_model
File "C:Usersuseranaconda3envstflibsite-packageskerasenginesaving.py", line 273, in _deserialize_model
if len(layer_names) != len(filtered_layers):
AttributeError: 'str' object has no attribute 'decode'

经过一些研究,我发现最有可能的原因是不匹配或tensorflow、keras和h5py包。

h5py低于3.0.0,我降级了对于tensorflow和keras版本,我使用了这个网站,它在许多其他有这个问题的帖子中被分享。https://docs.floydhub.com/guides/environments/

我在anaconda中检查了我的版本,它们都很好:

tensorflow                1.14.0               h1f41ff6_0    conda-forge
tensorflow-base           1.14.0           py37hc8dfbb8_0    conda-forge
tensorflow-estimator      1.14.0           py37h5ca1d4c_0    conda-forge
keras                     2.2.5                    py37_1    conda-forge
h5py                      2.10.0          nompi_py37he280515_106    conda-forge

所以我有点没主意。我在stackoverflow和github论坛上查看了很多问题,但匹配版本似乎不起作用。我使用的模型.h5文件是我从这里得到的标准面记录文件:https://drive.google.com/drive/folders/12aMYASGCKvDdkygSv1yQq8ns03AStDO_

通过手动删除";解码("来自用于加载模型的keras函数。

最新更新