大多数 ML 库都是由模块组成的,允许开发人员在构建处理预处理、训练、验证 ML 指标和其他任务的 ML 管道时混合搭配使用。这些库通常是开源且免费的,且有很多选择:仅一个 GitHub 页面就汇总了近千个基于 Python 编程语言的此类 ML 库。(Python 已成为主导的 ML 语言,尽管 ML 项目也使用JavaScript、R等其他语言)。
各类应用都有对应的库。Hugging Face 的转换器便于使用预训练的转换器模型。Stable-Baselines3 等库支持强化学习。ML 库可以有效地分为两大类。用作 ML 项目框架或平台的通用库。专用于 ML 项目特定阶段或组件的专用库。
通用 ML 库(有时被称为“通用框架”或“核心平台”)本身就有几十个。但有四个特别流行,常年位居“最佳”榜单:TensorFlow(以及密切相关的 Keras)、PyTorch 和 scikit-learn。每个库各有侧重,取决于项目或团队的需求。
NumPy 本身不是一个 ML 库,而是构建所有 ML 库的基础库。机器学习的核心是从海量数据中发现模式。NumPy 是一个创建 n 维数组结构的库,可帮助组织这些数据点并对其应用数学函数(线性代数的数学分支)。这些 n 维或多维数组——即可操作的大型数字容器——有时也称为“张量”,这是 ML 库讨论中的常见术语。(二维数组称为矩阵)。
虽然 NumPy 处理张量(机器学习的核心数据结构),但实际上,NumPy 对于现代 ML 的处理器密集型需求来说过于局限。除其他限制外,NumPy(其根源可以追溯到 1990 年代)过于陈旧,无法与商业 ML 通常需要的高级图形处理单元处理器“对话”(所谓的“GPU 加速”),而仅适用于低算力的中央处理单元 (CPU)。
Keras 与 TensorFlow 密切相关;同样由 Google 工程师创建。该库通常被希望为基于 TensorFlow 的 ML 项目提供更友好 API 的开发人员使用。2025 年发布的 Keras 版本新增了对 TensorFlow 之外其他框架(包括 PyTorch)的支持。Keras 还以其详尽的文档和实用教程闻名。
PyTorch 最初是由 Meta 研究人员于 2016 年底开发。它是旧版 Torch 库的 Python 移植版,其核心是张量。到 2022 年 PyTorch 移入 Linux 基金会时,据报道已有超过 2400 名贡献者在超过 15 万个项目中使用 PyTorch。(开源机器学习是目前的主流范式,该领域的蓬勃发展离不开广泛的协作。)与 TensorFlow 类似,PyTorch 同样允许开发人员执行类 NumPy 操作,但使用 GPU 而非 CPU——使 PyTorch 成为另一个深度学习框架。
“选 PyTorch 还是 TensorFlow?” 对于那些开始使用机器学习的人来说,这通常是他们首先要询问的问题(此前还有一个名为 Theano 的库参与竞争;它已于 2017 年弃用)。虽无错误答案,但 PyTorch 因其灵活且宽容(“Python 风格”)的设计及易用性,正成为许多开发人员的首选。长期以来,它一直受到学术界和研究人员的青睐,如今,工业界也越来越多地将其用于雄心勃勃的可扩展用例。例如,特斯拉的自动驾驶系统使用 PyTorch 构建的,微软的云计算平台 Azure 也提供支持。PyTorch 已经变得非常流行,以至于围绕它成长起一个支持工具生态系统,例如 Torchvision 和 TorchText。Tensorflow 和 Pytorch 都使用计算图——一种表示模型训练期间操作和变量流的数据结构。
Scikit-learn(小写为“scikit-learn”,也称为“sklearn”)是另一个基础 ML 库,设计用于与 NumPy 及另一个受数据科学家欢迎的支持科学计算的库 SciPy 交互操作。Scikit-learn 包含许多以模式识别为本质的 ML 算法。例如,它包括分类算法(如判断电子邮件是否为垃圾邮件)、回归算法(支持预测、预报和推荐系统)和聚类算法(将相似项分组)。虽然 scikit-learn 是初学者学习机器学习基础知识(如数据预处理、数据管道、决策树和优化等概念)的好地方,但它作为商业产品引擎的功能却很有限。与 NumPy 一样,scikit-learn 缺乏 GPU 加速,这意味着它不适用于深度学习模型,也不被认为是“深度学习库”。尽管如此,它仍可作为测试想法和原型的实验室。
任何 ML 模型的核心,本质上即学习部分,都将在上述基础库之一上运行。但机器学习是一个复杂的多阶段过程,因此演化出有助于处理特定 ML 任务工作流的库。此外,不同行业(例如金融或医疗领域)和不同数据类型(例如图像或音频数据)差异显著,足以从专用 ML 库中受益。虽然研究这种复杂性所产生的近千个开源库超出了本文的范围,但举例说明几个特别流行的库仍有助益。
Pandas 是用于数据科学的主要 Python 库,是任何 ML 工作的内核功能;与许多 ML 库一样,它也是创建在 NumPy 之上的。Pandas 比 NumPy 的数组更进一步,添加了一种类似于 Excel 电子表格的称为“数据框”的结构。这种附加结构使得对真实世界数据的大型数据集执行数据操作成为可能。
为了从可视化数据中揭示模式和获取洞察,两个流行的数据可视化库是 matplotlib 和 seaorn。前者生成绘图和图表,后者构建于其上,使其更适应 ML(例如,seaborn 可直接处理 pandas 的数据框)。
要启动一项可行的机器学习,需要进行大量的实验和试错才能取得成功。为此,MLFlow 库帮助团队记录 ML 模型、参数和结果,管理调试工作,帮助将训练好的模型转化为可以发布的产品。