【问题标题】:deep learning model in production, backend or frontend?生产、后端或前端的深度学习模型?
【发布时间】:2019-01-24 04:40:15
【问题描述】:

我最近建立了一个网站,用户可以在其中上传照片,然后会有一个 POST 请求发送到后端以进一步预测照片。目前,网络的用例就像......有人在他们的手机中打开浏览器,用他们的手机拍照并上传。所以基本上网络是在手机的浏览器上运行的,而不是在电脑上运行的。

后端:keras+flask+gunicorn+nginx 托管在 GPU 驱动的机器上 (1080 Ti*2)

我的问题是.. 就速度而言,这是一个好的架构吗? 听说有人说 POST 请求会很慢,因为通过 http 发送照片很慢。

我想知道使用 Tensorflow.js 在客户端加载模型是否是更好的选择?它看起来很棒,因为不需要将照片发布到后端,但这也意味着我的 GPU 不会被使用? 我在互联网上搜索过,但找不到任何参考或比较

谢谢!

【问题讨论】:

  • 欢迎来到 StackOverflow。请按照您创建此帐户时的建议阅读并遵循帮助文档中的发布指南。 On topichow to ask... the perfect question 在此处申请。 StackOverflow 不是设计、编码、研究或教程服务。

标签: tensorflow architecture deep-learning production


【解决方案1】:

有许多变量需要考虑。关键是您希望每分钟服务多少用户请求。正如您所说的,系统中的瓶颈将是“预测”。预测速度会因许多因素而异,例如图像分辨率和算法复杂度。你应该做一些简单的测试。为您想要做的预测类型构建算法,例如分类、检测、分割等。有一些可用的算法可以平衡速度与性能。它会让你感觉到什么是可能的。从内存中,在单个 1080ti gpu 机器上,ssd 检测算法需要不到 1 秒(甚至可能 0.2 秒)的高分辨率图像。构建您的系统图,识别关键风险并针对已识别的风险执行测试。

【讨论】:

  • 谢谢@gobob!瓶颈可能不在于预测速度。我更担心通过 HTTP 发送照片的速度。那么对于后端和前端,在实践中,我们必须构建两种类型的系统并进行测试以进行比较?
  • 我之前在您的问题中看到了有关 http 速度的评论。 http速度非常好理解。如果您搜索“图像大小”、“带宽”、“上传时间”或类似信息,您会发现一些不错的估计值。在客户端 CPU 上进行图像分析通常不会完成,因为它非常慢。
猜你喜欢
  • 2020-04-23
  • 2020-06-08
  • 1970-01-01
  • 2018-10-27
  • 1970-01-01
  • 1970-01-01
  • 2017-11-26
  • 2017-10-22
  • 2018-02-03
相关资源
最近更新 更多