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

Api 深度学习是如何实时工作的?,api,machine-learning,artificial-intelligence,deep-learning,Api,Machine Learning,Artificial Intelligence,Deep Learning,我刚刚制作了一个api,它使用Django根据用户输入推荐电影。它被设计为每10个用户输入执行一次深度学习功能。对于每10个输入,大约需要10秒才能给出输出。google或amazon如何能够毫不延迟地进行实时数据更新?说到执行,没有深入的学习,只有深入的模型。假设这是一个常规的前馈模型,那么您所要做的就是执行K(深度)矩阵乘法。对于卷积层,它要多得多,但仍然是矩阵乘法。所有这些操作都非常简单,可以并行化。特别是在GPU上运行它们会给你20倍的提升。使用tensorflow可以将计算分散到多个内

我刚刚制作了一个api,它使用Django根据用户输入推荐电影。它被设计为每10个用户输入执行一次深度学习功能。对于每10个输入,大约需要10秒才能给出输出。google或amazon如何能够毫不延迟地进行实时数据更新?

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


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

对不起,我的错误,我只是使用了apriori算法。稍后我将尝试使用TensorFlow。我的主要问题是,我不知道如何用新用户并行输入来更新(训练)所有这些数据,同时允许用户访问该数据库。我怎样才能在不制造任何麻烦(比如减速)的情况下自动化深度学习培训来更新数据呢?现在这是一个完全不同的问题,通常这是两件不同的事情。您有一个实际用于预测的模型(我们称之为A),然后您有另一个正在训练的模型(B),并且您只会不时地同步这些模型(将B复制到A)。这两个东西都在不同的机器上等。这样,即使模型“并行”训练,也不会减速。这种方法的重要优点是,在将新训练的模型投入生产(复制到A)之前,您还可以测试它是否足够好,所以每当我搜索某个东西时,他们使用机器B进行计算,同时提供来自机器A的预测。这些机器速度足够快,可以相互同步,以便在我尝试在10秒内搜索与前一台机器相关的其他内容时,提供更新的预测?对不起,我还是初学者。谷歌不在你的单个查询上训练他们的模型,训练大型模型需要大量数据,单个查询不值得计算梯度。你所指的(记住一些东西)与并行训练无关,你可以始终使用以前的查询作为上下文,这不需要重新训练任何东西。我明白了。因此,似乎为每个传入数据创建并行训练和预测还有很长的路要走。虽然深度学习在哪一部分被用于应用,但它确实在发展中,这让人感到困惑。非常感谢你!