我有服务,这应该作出回应的分类10-20图像每一个请求.
现在我一个接一个地处理:
with model_store.some_graph.as_default():
with model_store.some_session.as_default():
for i in images:
x = image.img_to_array(i)
x = preprocess_input(x)
x = np.expand_dims(x, axis=0)
pred = model_store.top_model.predict(x)[0]它需要3-4秒(在CPU实例上),可以在一次调用中处理它们吗?如果是的话,它能提高性能吗?
发布于 2018-06-15 11:42:47
你需要给一批图像,某种形状的(batch_size, W, H, C)。在您的示例中,将图像收集到列表中,然后连接成单个张量:
def process_img(x):
x = image.img_to_array(x)
x = preprocess_input(x)
x = np.expand_dims(x, axis=0)
return x
imgs = [process_img(i) for i in images]
imgs = np.concatenate(*imgs, axis=0)
preds = model_store.top_model.predict(imgs, batch_size=32)现在,该模型将一次对32幅图像进行预测。这可能会加快速度取决于您的硬件。因此,你也可以一次得到所有的预测。
https://stackoverflow.com/questions/50874729
复制相似问题