python - 在 python 字典中高效加载多个 Keras 模型
问题描述
我有大约 120 个模型经过训练并存储在多个文件夹中。我正在尝试将这些模型加载到字典中,以便针对它们的用例进行预测。
但问题是,由于字典变得太大,加载这些模型以及预测输出都需要时间。
有没有更有效的方法来加载这些模型而不是在 python 字典中?我什至尝试将这 120 个模型加载到 12 个不同的字典中,但加载和预测仍然需要大量时间。
但问题是,由于字典变得太大,加载这些模型以及预测输出都需要时间。
model = {}
for _ in tqdm(os.listdir("wts_deep")):
try:
int(_[0])
list_of_models = os.listdir("wts_deep/"+_)
a = np.array([float(___.split("-")[3].split(".hdf5")[0]) for ___ in list_of_models])
__ = np.where(a == a.max())[-1][-1]
model[_] = load_model("wts_deep/"+str(_)+"/"+str(list_of_models[__]))
except:
print(_)
模型本身的加载大约需要 33 分钟
解决方案
我建议只保存模型权重,重新构建模型架构并加载权重。我也认为缓慢不是由于字典的使用。我认为这与 Keras 和/或运行模型的后端有关。如果您使用的是 Tensorflow,如果您尝试使用相同的会话和图形加载模型,您可能会遇到一些问题。
推荐阅读
- c# - System.Windows.Form.Panel 中控件的动态垂直位置错误
- python - Is there a way to send two messages with socket
- ios - SceneKit flattenedClone - 错误使用 objc_storeWeak() 和 objc_loadWeak() 错误
- python-3.x - Pytorch:AttributeError:即使已初始化,也无法在 Module.__init__() 调用之前分配模块
- powershell - 如果 Powershell 中的语句总是以相同的输出响应
- r - 求解一个简单的非线性系统
- laravel - 图像集成返回错误(CKfinder / CKeditor 5 / Laravel 5.7)
- r - 使用 rvest 抓取并将 html 输出转换为数据框
- angular - Angular,如何从外部身份验证服务器接收 JWT 令牌
- c# - 如何向我的 c# windows 窗体应用程序添加访问权限?