深度学习方法的发展是推动深度学习框架进步的最大动力,因此深度学习框架的功能和设计应顺应 算法和模型的发展趋势:
第一,易用性。深度学习领域仍处于快速发展期,参与者和学习者不断增加,新模型大量提出。因 此,与以往编程语言较为相似,且易于学习和编写的框架更容易受到使用者的青睐,有助于框架推广及获取更多用户。
第二,分布式与并行能力。随着深度学习模型规模及数据量的急剧增加,单卡已经无法满足较大模型的训练。分布式训练以及随之而来的并行问题对深度学习的重要性不断增加,尤其是对于工业界大型应用,如何提升并行和分布式性能,降低训练花费是当前及未来深度学习框架必须解决的问题。
第三,统一性。统一性包括纵向与横向的统一性,纵向统一性指的是框架各版本之间应在接口与使 用方法上保持一致,横向统一性则指框架对各类硬件及各类部署的统一性。由于深度学习框架更新迭代快,若各版本之间接口与用法不统一,会对使用者带来较大阻碍,TensorFlow正是由于缺乏纵向统一性而导致用户流失。而在横向统一性上,随着深度学习的广泛应用,模型已被部署在各类硬件上,除专业计算卡和计算机CPU、GPU 之外也越来越多的用于手机甚至耳机、摄像头等移动终端。多类型终端部署对框架的横向统一性提出了要求,具有良好横向统一性的框架能够使模型不经过特别调整即可部署在多个终端,大大简化了深度学习在工业界应用的步骤,提升了模型的实用性。
第四,扩展性。深度学习模型的发展与其他方法的交叉逐渐增加,模型不再是以往简单的神经网络 层堆砌和卷积等操作,图模型、贝叶斯等模型越来越多地与深度学习模型进行结合,可以预见未来将有更多模型与深度学习方法结合。一个良好的深度学习框架应具有对这些模型的支持,简化相关模型的编写。
第五,计算效率。