tensorflow-serving - 提高 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 服务。最坏的情况下,可以假设客户端请求来自同一台机器或本地网络。
解决方案
有一个类似的问题,到目前为止,最终得到了一个直接加载了 TF 的模型(tf.saved_model.load)。推理时间提高了 2 倍以上。在 K8s 集群上运行
推荐阅读
- excel - 在 Excel 公式单元格中,有没有办法以编程方式将表达式从使用默认变量更改为自定义单元格名称?
- android - Android中有关涟漪效应的问题
- angular - 如何使用 Stencil.js 更新插槽中传递的元素?
- flask - 运行Flask时终端中的“←[37m”是什么意思?
- javascript - 某些键值对不会显示在 mongoDB 的数据库中。为什么可能是原因?
- c - 执行我的 OpenGL C 程序以实现 Bresenham 的画线算法时出错。中止(核心转储)
- sql - 如果A列中的值为null,那么如何返回B列的值,如果B也是null,那么如何移动到C的值
- javascript - 从服务器发送的 javascript 对象在客户端没有方法
- reference - 在 Tableau 中将日期与 makedate 匹配
- android - 如何更新房间数据库中的检查 recyclerview 列表?