python - 无法加载 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)
解决方案
像这样试试
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")
推荐阅读
- python - Python:如何在 Selenium 中获取当前鼠标坐标?
- woocommerce - 我如何使这个角色具体化?
- visual-studio-code - VS Code 调试器到达第一个断点的速度极慢
- python - 变量在函数 python 中不起作用(我的代码有什么问题)
- sql - 在存储过程中设置事务级别时,被调用的过程是否保持相同的事务级别?
- javascript - 模具生命周期方法不渲染
- android - 使用 ContentResolver 将图片保存到 Picutes 子文件夹并防止被图库扫描
- jquery - 当文本已更改时,使用 jQuery 获取项目模板内的 Asp.net TextBox 的值
- linux - 如何根据bash中的当前减去上一行相同的列值替换当前行值?
- c++ - 无法在 std::shared_ptr 中保存 QQmlContext