首页 > 解决方案 > 提高 tensorflow-serving 中非常大的输入/输出图像的 io 性能

问题描述

我们在 tensorflow 中有模型,它以 uint16 格式输入非常大的图像(> 40MPx)。模型输出相同大小的图像并在带有 GPU 的自定义编译 tf-serving 上运行。最大的问题似乎与图像大小有关,因为 GPU 推理需要约 1 秒,而整个 HTTP 请求在本地 tf-serving 和 SSD 驱动器上运行约 17 秒。我们的模型输出 tf.image.encode_png,它正确命名为后缀 '_bytes',以便 tf-serving 可以根据此博客文章将其正确编码为 base64 。此图像从 b64 解码需要 2.5 秒。

由于 json 编码,这对于似乎主要是 IO 操作的开销来说是相当大的。有没有更有效的方法来减少这种开销?

我们确实需要 GPU、大图像、uin16 和 tensorflow 服务。最坏的情况下,可以假设客户端请求来自同一台机器或本地网络。

标签: tensorflow-serving

解决方案


有一个类似的问题,到目前为止,最终得到了一个直接加载了 TF 的模型(tf.saved_model.load)。推理时间提高了 2 倍以上。在 K8s 集群上运行


推荐阅读