tensorflow和keras--从SQS中快速推理生产过程

问题描述 投票:0回答:1

我已经用Keras写好了我的模型并进行了训练。我正试图在生产中使用它进行推理。我收到了SQS的 "任务 "消息,其中包含一个元组,即 (path_in, path_out).

我显然可以使用。

BATCH_SIZE = 10
batch_messages = []


while True:
  while len(batch_messages) < BATCH_SIZE:
    msg = sqs.read_messsage()  
    batch_messages.apend(msg)

  assert len(batch_messages) == BATCH_SIZE
  batch = np.array([read_image(msg.path_in) for msg in batch_messages]) 

  output_batch = model.predict(batch)

  for i in range(BATCH_SIZE):
    write_output(output_batch[i], path=batch_messages[i].path_out)

  batch_messages = []

问题是代码浪费了大部分时间从SQS读取图像 从磁盘读取图像,然后在最后写回来 这意味着GPU在这段时间内都是空闲的。

我知道Keras的 Sequence但不知道它是否也是为这种情况而准备的,而且是为推理(而不是训练)而准备的。

python-3.x tensorflow amazon-sqs
1个回答
0
投票

我建议你使用 Tensorflow服务 解决方案,因为它实现了服务器端批处理策略,优化了推理速度和GOU利用率。另外,如果你想加快你的流水线,你应该把模型转换成一个 TensorRT 模型,该模型针对特定的GPU优化了模型操作(而且它还能做得更多)。

© www.soinside.com 2019 - 2024. All rights reserved.