为什么说 TensorFlow 是适用于部署生产的机器学习框架?

关注者
395
被浏览
66,608

21 个回答

怎么做分布式训练?(老板说,gpu这几年买这么多了,为啥速度还慢?你还要采购新的?没预算)

多个业务高并发serving?(上千上万个不同模型,针对不同业务,如何处理?单机?)

这些等你真的要把模型用起来的时候就知道了。

scalability永远是任何应用最大的落地门槛

部署生产追求的是部署方便,运行生产效率高。TensorFlow的设计处处体现了一个延后计算的思想。从而可以做更多静态分析,图优化,从而达到高运行效率。

训练与推导的本质是流水线,流水线的本质是DAG运算。

Tensorflow在写代码的时候你会感觉到,怎么我写了这么多,什么有用的都没有执行呢?为什么老得用一个session去run才能得到结果。原因是你做的这么多工作,都是在生成数据加载模型,图模型。你是在生产一部自动机器,等你把这机器造好了,他还会自动优化一下,比如重复的操作可合并等。sess.run的时候,它会自动吃进去数据,吐出来结果。

因为你在设计之初,就被tensorflow强制考虑数据流的问题了,而按照数据流高度抽象过的程序,很容易被部署在多核/多GPU/多节点环境中。sess.run的时候,即让数据按设计流程流动起来了。

这本质上呢,可能对researcher不是很友好,因为搞科研的,喜欢第一步,第二步,第三步那样的逻辑去写代码,在jupyter里,写一步就得一步的结果。

不过呢,为了运算效率,早点神丹炼成,写tensorflow也逐渐被接受了。