Tensor Flow 的主要特征有:①灵活性与可移植性。在设备层,Tensor Flow 能够运行在不同类型和大小的机器上,如台式机、服务器、手机移动设备等并可以方便地进行移植。在前端,Tensor Flow 支持 C++、Python、Go、JavaLua、Javascript、R 等主流语言。Tensor Flow 核心库对 CPU/GPU 是透明的,其布式架构使得在大规模数据集上的模型训练可以在合理的时间内完成。②易用性与高效性。Tensor Flow 工作流易于理解,能够方便地构建和实现已有的复杂机器学习架构。 同时,目前已有多种高层接口构建在 Tensor Flow 之上,如 Keras、Sk Flow 等。Tensor Flow库的高性能、高效率特征,还可以将硬件的计算潜能全部发挥出来。③促进科学研究进程。以往研究者在科研中的算法需要大量的编码工作才能转化为产品,而使用 Tensor Flow 可以帮助研究者直接尝试新的算法,通过训练和使用模型,更便捷地将研究成果转化为实际产品,故有效地提高了科研产出率。④良好的技术支持与完善的社区。Google 投入了巨大的资源为 Tensor Flow提供支持和引导并且鼓励社区参与,使用者通过广泛的社区支持可以方便地获取帮助。
主要开源框架的比较
当前,Google Microsoft、Facebook 等科技公司和多家研究机构都推出了开源的人工智能与机器学习框架,其中主要开源框架的比较如表 1 所示。结果显示,较之 Caffe、MXNet、CNTK、Theano、Torch、Paddle Paddle 等主要开源框架,Tensor Flow 在架构设计、性能、应用等方面的表现均更为出色。
Tensor Flow 的应用原则
Tensor Flow 为人工智能的研究与开发提供了良好的基础和支持。例如在应用开源系统进行教育人工智能系统的设计与实现时,需要遵循以下原则:
设计方面:从需求出发,围绕用户、目标、问题和场景展开
在人工智能研究中,要注意“人工智能教育不同于娱乐游戏产品,无论是应还是市场开发,都必须充分尊重教育自身规律。”设计教育人工智能产品是在设计一个具有主动学习、成长、预测能力的系统,用户、目标、问题和场景是进行教育人工智能系统设计时需特别注意考虑的要素。从教育需求出发,用户群分析和目标分析是进行系统设计的前提,而明确应用场景和要解决的问题是进行系统设计的关键。在此基础上,通过教师、教学设计者、教学软件开发者的共同参与,完成系统的模型构建和功能模块设计。
实现方面:从教学模型到教育产品,发挥开源系统优势
在具体的实现方面,应充分发挥 Tensor Flow 开源系统的优势,选择合适的 Tensor Flow 技术和相关技术,将系统模型从教学研究变成教育产品,具体可以下方面着手:①在应用中可以使用 Tensor Flow Serving 导出和应用模型——Tensor Flow Serving 是一个高性能的服务系统,用于运行通过机器学习得到的模型,使模型能够更迅速、更便捷地进入产品开发过程;②可以通过 Tensor Flow Ecosystem 与多种开源框架融合,实现不同开发环境和系统的互通;③在基于Tensor Flow 教育人工智能系统的应用中,注意充分发挥其分布式、可扩展性、跨平台性等优势。