TensorFlow 是什么?谷歌开源的机器学习框架
TensorFlow 是一个用于机器学习的开源软件库和端到端平台,由谷歌大脑团队开发,于 2015 年 11 月以开源的方式发布。它可以用于各种机器学习任务,尤其擅长深度神经网络的训练和推理,曾经是全球使用最广泛的深度学习框架。
名字的含义
TensorFlow 的名字来自它的计算方式:“张量”(Tensor)是多维数组,是深度学习中表示数据的基本单位,比如一张彩色图片可以表示为一个三维张量;“流”(Flow)指的是数据在计算图中流动。在 TensorFlow 中,计算被表示为一张由各种运算节点组成的图,张量沿着图中的边从一个运算流向下一个运算。
发展历程
TensorFlow 的前身是谷歌内部的机器学习系统 DistBelief。开源之后,TensorFlow 凭借谷歌的影响力和完善的工具链迅速流行。早期的 TensorFlow 1.x 采用静态计算图:需要先定义好整张计算图,再把数据送进去运行,这种方式便于优化和部署,但编写和调试代码比较繁琐,不够直观。2019 年发布的 TensorFlow 2.0 进行了重大的改进:默认采用即时执行模式,代码可以像普通的 Python 一样逐行运行和调试;并把高层的神经网络接口 Keras 作为官方推荐的建模方式,大大降低了使用门槛。
主要特点和生态
多平台运行:支持在 CPU、GPU 以及谷歌自研的 TPU(张量处理单元)上运行,可以进行大规模的分布式训练。完善的部署工具:TensorFlow Serving 用于在服务器上部署模型提供在线服务;TensorFlow Lite 用于在手机、嵌入式设备和物联网设备上运行模型,2024 年更名为 LiteRT;TensorFlow.js 可以在浏览器和 Node.js 中运行模型。TensorBoard:可视化工具,可以直观地查看训练过程中的损失变化、模型结构等。此外还有用于构建机器学习生产流水线的 TFX 等工具。
今天的地位
近年来,在学术研究和大语言模型领域,Meta 推出的 PyTorch 因为更加灵活、易于调试,逐渐超越了 TensorFlow,成为大多数研究者和开源大模型的首选;谷歌内部的前沿研究也越来越多地转向了 JAX。不过,TensorFlow 在工业界仍然有大量的存量应用,尤其在移动端和边缘设备的部署方面生态成熟,依然被广泛使用。Keras 从 3.0 版本开始也已经支持以 TensorFlow、PyTorch 或 JAX 作为后端运行。