如何加载现有Keras模型?

2exbekwf  于 2023-03-08  发布在  其他
关注(0)|答案(1)|浏览(160)

我一直试图从这里加载Keras模型:https://github.com/gitshanks/fer2013(包括. json和. h5),在训练一个面部识别模型之前,用现有的面部识别模型测试我的代码的某个部分。我已经搜索了不同的方法来完成它,但我无法加载它。我想知道它是否与不同版本的Keras有关,当模型被保存和我加载它时。
我已经尝试了两个不同的东西,我发现在谷歌和这里,但我不能加载它。

from tensorflow.keras.models import model_from_json
json_file = open('fer.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
# load weights into new model
loaded_model.load_weights("fer.h5")
print("Loaded model from disk")

错误:
x一个一个一个一个x一个一个二个x
最后一个示例成功地加载了我之前创建并保存在www.example.com()中的模型。model.save().
错误:

Traceback (most recent call last):

  Cell In[32], line 2
    new_model = load_model('fer.h5')

  File ~\AppData\Roaming\Python\Python38\site-packages\keras\utils\traceback_utils.py:70 in error_handler
    raise e.with_traceback(filtered_tb) from None

  File ~\AppData\Roaming\Python\Python38\site-packages\h5py\_hl\files.py:567 in __init__
    fid = make_fid(name, mode, userblock_size, fapl, fcpl, swmr=swmr)

  File ~\AppData\Roaming\Python\Python38\site-packages\h5py\_hl\files.py:231 in make_fid
    fid = h5f.open(name, flags, fapl=fapl)

  File h5py\_objects.pyx:54 in h5py._objects.with_phil.wrapper

  File h5py\_objects.pyx:55 in h5py._objects.with_phil.wrapper

  File h5py\h5f.pyx:106 in h5py.h5f.open

OSError: Unable to open file (file signature not found)
r1wp621o

r1wp621o1#

您提供的代码对我来说是有效的,我也可以使用loaded_model.summary()查看模型。在您的情况下,很可能模型保存在当前工作目录以外的目录中。因此,Traceback使用JSONDecodeError: Expecting valueOSError: Unable to open file (file signature not found)进行响应。
可能的解决方法包括在json_file = open('fer.json', 'r')中包含整个路径,例如:json_file = open('/home/dev/Downloads/fer.json', 'r').
或者,您可以使用以下命令检查当前目录:

import os
print(os.getcwd())

并将下载的模型复制到当前工作目录中。
稍后,您可以使用loaded_model.summary()查看网络的体系结构。

相关问题