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