今天聊聊,Rust 机器学习必须了解的库。
最近,很多伙伴在机器学习领域,将自己主力语言 Python 开始瞄准到 Rust。头疼的是,Rust 还是太年轻了,很多库要么还没成熟,要么还在开发中,没有 Python 那么丰富。
不过,Rust 社区非常活跃并且增长迅猛,很多大佬也在努力尝试 Rust 来开发很多机器学习库,但目前为止,很多大厂积极拥抱 Rust 来重构底层基础设施,这是值得关注。下面是,Rust 常见机器学习库。
ndarray
ndarray 是 NumPy 库中的一个核心数据结构,它是一个用于表示多维数组的对象。ndarray 在存储和操作大型多维数组时非常高效,广泛应用于科学计算、数据分析、机器学习等领域。
在 Rust 开发中,ndarray 库可以作为替代 NumPy 库。
Github 地址:https://github.com/rust-ndarray/ndarray
Polars
可以作为替代 Python 中 pandas 库,Polars 是个开源的数据处理库,提供快速和灵活的数据处理能力,尤其处理大型数据集时。Polars 的设计目标是提供类似于 Pandas 的 API,但利用 Rust 的性能优势来提高数据处理的速度。
Github 地址:https://github.com/pola-rs/polars
tch-rs
tch-rs 是一个使得 Rust 能够与 PyTorch 框架结合的工具,扩展了 Rust 在机器学习和深度学习领域的应用能力。广泛用于计算机视觉和自然语言处理等研究和应用领域,tch-rs 允许 Rust 开发者利用 PyTorch 的功能,进行深度学习模型的开发和部署。
Github 地址:https://github.com/LaurentMazare/tch-rs
Burn
Burn 是一个新的综合动态深度学习框架,使用 Rust 构建,以极高的灵活性、计算效率和可移植性作为其主要目标。这个库之前也推荐过,非常值得去关注。
Github 地址:https://github.com/tracel-ai/burn
Candle
Candle 是由 Hugging Face 开发的 Rust 语言机器学习框架。主要是为 Rust 开发者在机器学习领域提供了新的工具,使得构建和部署机器学习应用变得更加容易。
- 极简设计:提供简洁的 API,易于使用。
- 高性能:利用 Rust 语言的性能优势。
- 易用性:API 设计借鉴了 PyTorch,降低学习成本。
- 灵活性:支持多种后端,方便在不同环境中部署。
- 安全性:Rust 语言保证了内存安全和线程安全。
GIthub 地址:https://github.com/huggingface/candle
Linfa
linfa 提供一个全面的工具包来使用 Rust 构建机器学习应用程序。类似 Python 的scikit-learn 库,专注于日常 ML 任务的常见预处理任务和经典 ML 算法。
GIthub 地址:https://github.com/rust-ml/linfa
plotters
Plotters 是一个绘图库,设计用于用纯 Rust 渲染图形、绘图和图表,支持各种类型的后端,包括位图、矢量图、活塞窗口、GTK/Cairo 和 WebAssembly。类似 Python 的 matplotlib 库。
Github 地址:https://github.com/plotters-rs/plotters
petgraph
petgraph 是一个图数据结构库,图是节点以及节点之间的边的集合。petgraph 提供了多种图形类型、这些图形的算法以及以格式输出图形 graphviz 的功能。
Github 地址:https://github.com/petgraph/petgraph
tensorflow-rust
TensorFlow 的 Rust 语言绑定,允许 Rust 开发者使用 TensorFlow 的机器学习框架。
Github 地址:https://github.com/tensorflow/rust