深度学习是如何实时工作的



我刚刚用Django做了一个api,根据用户输入来推荐电影。它被设计为对每个用户的每10个输入执行深度学习功能。对于每10个输入,大约需要10秒才能输出。谷歌或亚马逊如何做到实时数据更新无延迟?

说到执行,没有深度学习,只有深度模型。让我们假设这是一个常规的前馈模型,那么你所要做的就是执行K(深度)矩阵乘法。对于卷积层,它更多,但仍然是矩阵乘法。所有这些操作都是极其简单的并行化。特别是在GPU上运行它们会给你20倍的提升。使用tensorflow可以将计算分散到许多核心/cpu/机器上,也是以同样的方式工作的。还有许多其他的优化可能,比如训练一个小网络来复制大网络的行为,利用一些矩阵的稀疏性(如果你使用relus -许多神经元将产生零,因此-稀疏矩阵出现)等。

也就是说——网络需要10秒来处理10个输入听起来像一个可怕的实现,或者网络真的是巨大的,所以在进行一般的优化方案之前——确保你当前的代码是好的。例如,如果你使用tensorflow等,重要的是,在推送数据之前,许多事情都需要时间——比如加载库、启动会话、session .run调用本身等等。

最新更新