tch-rs: 為 PyTorch C++ API 提供張量操作與神經網路訓練的 Rust bindings
tch-rs: 為 PyTorch C++ API 提供張量操作與神經網路訓練的 Rust bindings
它解決了什麼問題
tch-rs 為 PyTorch C++ API (libtorch) 提供 Rust bindings,讓開發者能夠在 Rust 程式語言中使用 PyTorch 強大的張量操作、自動微分與神經網路模組。它為那些既想要 Rust 的效能與安全性,又想利用 PyTorch 成熟生態系統的人們架起了橋樑。
運作原理
此專案提供了對 C++ PyTorch API 的薄層封裝 (thin wrappers)。其設計目標是盡可能貼近原始的 C++ API 以確保一致性。該函式庫會連結至 libtorch,您可以透過系統級安裝、Python PyTorch 安裝,或在建置過程中自動下載來提供。
目標對象
它適用於想要使用 PyTorch 的功能來建構、訓練與部署機器學習模型,且不需要撰寫 Python 程式碼的 Rust 開發者。
重點功能
- 張量操作 (Tensor Operations):支援基礎張量操作與數學運算。
- 自動微分 (Automatic Differentiation):能夠透過
nn::VarStore以及 SGD 和 Adam 等優化器,經由梯度下降法來訓練模型。 - 神經網路 API (Neural Network API):用於建構包含線性層與激活函數(例如 ReLU)之架構的工具。
- 預訓練模型支援 (Pre-trained Model Support):能夠從 PyTorch 檔案或
safetensors格式載入權重以進行即時推論。 - TorchScript JIT:支援透過 TorchScript 部署與執行在 Python 中訓練的模型。
- 跨平台 (Cross-Platform):支援 Linux、macOS 與 Windows,並提供 CUDA 支援以進行 GPU 加速。
Sources
- undefinedLaurentMazare/tch-rs