在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,如果您尝试使用相同的会话和图形加载模型,您可能会遇到一些问题。

最新更新