首页 > 解决方案 > 无法加载 Keras 保存的模型(错误:无法打开文件)

问题描述

我在 colab 上训练了一个 keras 序列模型并将其保存为 TensorFlow SavedModel 格式。然后我将训练模型的压缩文件夹(包含 saved_model.pb 文件和变量子文件夹)下载到我的计算机上,并尝试将此模型加载到我的一个 python 文件中,但最终出现
此错误:(注意:我从一个安装了 keras 和 tensorflow 的 anaconda 自定义环境)

OSError: Unable to open file (unable to open file: name = 'C:/Users/user/Desktop/chiffre.model', errno = 13, error message = 'Permission denied', flags = 0, o_flags = 0)

这是colab上的训练和保存代码:

import numpy as np
from tensorflow import keras
from tensorflow.keras import layers

model = keras.Sequential(..................)
#some lines of code
model.save('chiffre.model')

我试图在python文件中加载模型:

new_model = keras.models.load_model('C:/Users/user/Desktop/chiffre.model',custom_objects=None,compile=True)

标签: pythonpython-3.xtensorflowkerasdeep-learning

解决方案


像这样试试

model.save("my_model")

调用model.save('my_model')会创建一个名为 my_model 的文件夹,其中包含以下内容:

assets  saved_model.pb  variables

模型架构和训练配置(包括优化器、损失和指标)存储在 saved_model.pb 中。权重保存在 variables/ 目录中。

然后加载模型,

reconstructed_model = keras.models.load_model("my_model")

或者

您还可以保存一个包含模型架构、权重值和 compile() 信息的 HDF5 文件。它是 SavedModel 的轻量级替代品。

# Calling `save('my_model.h5')` creates a h5 file `my_model.h5`.
model.save("my_h5_model.h5")

要使用此方法加载,

# It can be used to reconstruct the model identically.
reconstructed_model = keras.models.load_model("my_h5_model.h5")

推荐阅读