Jiv*_*van 5 python keras tensorflow
我有一系列以 hdf5 格式保存的 Keras 模型(包括结构和权重)。这些模型基于keras.applications 中预先训练的DenseNet121 ,并使用自定义数据集进行了进一步微调。
对于生产使用,我需要将所有这些模型同时加载到内存中。
from keras.models import load_model
model_names = ['birds', 'cats', 'dogs', 'phones']
models = dict()
for name in model_names:
path = 'models/{}.h5'.format(name)
m = load_model(path)
models[name] = m
Run Code Online (Sandbox Code Playgroud)
加载的模型越多,加载时间似乎呈指数级增长。指示值是:
birds.h5
cats.h5
dogs.h5
phones.h5
所有模型都基于相同的结构,每个 h5 文件在磁盘上占用 82Mb。p2.xlarge
我在配备一个 GPU 的AWS 实例上运行此程序。
问题:
这不是一个经过验证的答案,我从上面的评论中详细介绍了它,供您测试。
将 4 个模型合并为一个模型。
怎么做?
加载它们并一直等待(这仍然不是生产)。
现在:
common_input = Input(compatible_shape) #assuming all models have similar inputs
outputs = []
for name in models:
outputs.append(models[name](common_input))
common_model = Model(common_input, outputs)
Run Code Online (Sandbox Code Playgroud)
保存它common_model
并查看在新会话中加载需要多长时间。
您可以使用 从中检索每个模型common_model.layers[i]
。在摘要中查看哪个i
是哪一层。如果您使用名称定义子模型,则更容易:common_model.get_layer(model_name)
.
归档时间: |
|
查看次数: |
247 次 |
最近记录: |