生产、后端或前端的深度学习模型?

deep learning model in production, backend or frontend?

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

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

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

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

谢谢!

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