Tensorクラスと、多数の演算を定義している。
| ATen の使用例 |
#include <ATen/ATen.h>
at::Tensor a = at::ones((2,2), at::kInt);
at::Tensor b = at::randn({2,2});
auto c = a + c.to(at::kInt);
|
Tensor クラスで自動微分を可能となる API。
autograd はテンソルに対する操作を gutograd グラフに記録しておき、
そのグラフの leaf 変数に対して backwards() 関数を呼び出すと、
関数やテンソルのネットワーク全体に対して逆モードの微分を実行して勾配を計算する。
| Autograd の使用例 |
#include <torch/csrc/autograd/variable.h>
#include <torch/csrc/autograd/function.h>
torch::Tensor a = torch::ones({2, 2}, torch::requires_grad());
troch::Tensor b = torch::randn({2, 2});
auto c = a + b;
c.backward(); // a.grad() は ∂a/∂c を保持する。
|
at::Tensor クラスはデフォルトでは微分可能ではない。
autograd API が提供するテンソルの微分可能性を追加するには、
torch::名前空間 のテンソルを使う必要がある。
torch.nn.Module)torch.utils.data.DataLoader)torch.nn.parallel.DataParallel)PyTorch 公式の現時点の "Start Locally" ページでは、 LibTorch を含む最新 Stable では、 CUDA 11.8 / 12.6 / 12.8 / ROCm /CPU-only のビルドが用意されている。
古いドライバへの対応も考えると CUDA 11.8 + PyTroch 2.4-2.6 を、 最新版だと CUDA 12.6 + PyTorch 2.X (その時点での最新版) を使うとよさそうだ。
NVIDIA Optimized Frameworks: PyTorch Release Notes によると PyTorch 24.12 は以下のバージョンを含んでいる。Ubuntu 24.04 Python 3.12 NVIDIA CUDA 12.6.3 PyTorch 2.6.0a0+df5bbc0