而Facebook就抓住了这一点。将原来的开发工具Torch进行升级,联手微软打造神经网络交换格式帮助开发者降低迁移成本。同时PyTorch设计了更方便的数据加载API接口,使开发过程中加载并行数据更加顺畅,相比TensorFlow降低了不少API方面的学习成本。
在自定义扩展上,PyTorch也改变了TensorFlow依靠样板代码才能实现的情况,通过为CPU/GPU编写接口这种更易行的方式添加自定义拓展,使得开发过程中的自由度大大提高。
综合来看,在开发框架的竞争中,赛点在于更低的学习成本和迁移成本,以及更高的易用性和社区友好度。
在这几个方面,西方战场之外的PaddlePaddle也以灵活、易用著称。
在应用效率上,PaddlePaddle在运行RNN算法时比其他主流框架占用更少的内存,速度却提升了1-2倍。
在训练部分的调用方式上PaddlePaddle集中了浏览器和客户端等多种主流调用方式,并支持CPU、GPU、FPGA等多种硬件,从而极力降低开发成本。同时还支持多种深度学习模型,使得开发者可以更关注模型的高层结构,抛开底层编码,使得 TensorFlow 里需要数行代码才能实现的功能,在 PaddlePaddle 里可能只需要一两行。
除此之外,PaddlePaddle还展示出了很多适用于应用层面的功能。例如在最新的Fluid版本中让开发过程更接近常见的高级语言,减少深度学习中“黑箱”状况的出现,让开发者不再用“玄学”调参,更进一步明晰开发和优化中产生的对应关系,使得开发过程更有可复制性。
还包括PaddlePaddle支持弹性使用计算资源完成深度学习训练,根据需求变化设置资源消耗的弹性区间。对于时常面对着繁多计算任务的大型企业来说,此举可以帮助他们节约大量资源,让深度学习的开发和训练成本进一步降低。
近日有新闻报道,Google发布TensorFlow.js,支持在浏览器上进行机器学习的相关工作,但在降低开发者使用浏览器发展机器学习的门槛方面,PaddlePaddle确实做得更早也相对成熟。同时为了让更多开发者和企业能够将现有项目接入到中PaddlePaddle,PaddlePaddle做到了从基础训练到分布架构彻底开源。这一点即使在以开源精神著称的硅谷都很稀有。