Pytorch torch リファレンスマニュアル
PyTorch ソフトウェアパッケージには、多次元テンソル用のデータ構造が含まれており、これらのテンソル上で実行される数学演算が定義されています。さらに、テンソルや任意の型のデータを効率的にシリアライズするための多くのユーティリティや、その他の便利なツールも提供しています。
さらに、CUDA 版もあり、計算能力 >= 3.0 の NVIDIA GPU 上でテンソル計算を実行することができます。
PyTorch torch API リファレンス
テンソル型の判定
| 関数 | 説明 |
|---|---|
torch.is_tensor(obj) |
確認objPyTorchテンソルかどうかを確認します。 |
torch.is_storage(obj) |
確認objPyTorchストレージオブジェクトかどうかを確認します。 |
torch.is_complex(input) |
確認inputデータ型が複素数データ型かどうかを確認します。 |
torch.is_conj(input) |
確認input共役テンソルかどうかを確認します。 |
torch.is_floating_point(input) |
確認inputデータ型が浮動小数点データ型かどうかを確認します。 |
torch.is_nonzero(input) |
確認input非ゼロの単一要素テンソルかどうかを確認します。 |
torch.set_default_dtype(d) |
デフォルトの浮動小数点データ型を設定します。d。 |
torch.get_default_dtype() |
現在のデフォルトの浮動小数点データ型を取得します。torch.dtype。 |
torch.set_default_device(device) |
デフォルトを設定します。torch.Tensor割り当てるデバイスを設定します。device。 |
torch.get_default_device() |
デフォルトを取得します。torch.Tensor割り当てられるデバイス。 |
torch.set_default_tensor_type(tensor_type) |
デフォルトのテンソル型を設定します。tensor_type。 |
torch.numel(input) |
返します。inputテンソル内の要素の総数。 |
torch.set_printoptions(...) |
テンソルのプリントオプションを設定します。 |
テンソルの作成
インデックス、スライス、結合、変更操作
乱数生成
| 関数 | 説明 |
|---|---|
torch.manual_seed(seed) |
乱数シードを設定します(CPU)。 |
torch.seed() |
乱数シードを設定し、新しいシード値を返します。 |
torch.initial_seed() |
現在の乱数シードを返します。 |
torch.get_rng_state() |
乱数生成器の状態を返します。 |
torch.set_rng_state(state) |
乱数生成器の状態を設定します。 |
torch.rand(*size, dtype, device, requires_grad) |
一様分布の乱数テンソルを作成します(範囲 [0, 1))。 |
torch.rand_like(input, dtype, device, requires_grad) |
入力と同じ形状の一様分布乱数テンソルを作成します。 |
torch.randn(*size, dtype, device, requires_grad) |
標準正規分布の乱数テンソルを作成します。 |
torch.randn_like(input, dtype, device, requires_grad) |
入力と同じ形状の標準正規分布乱数テンソルを作成します。 |
torch.randint(low, high, size, dtype, device, requires_grad) |
整数の乱数テンソルを作成します。 |
torch.randint_like(input, low, high, dtype, device, requires_grad) |
入力と同じ形状の整数乱数テンソルを作成します。 |
torch.randperm(n, dtype, device, requires_grad) |
0からn-1までのランダムな順列を作成します。 |
torch.bernoulli(input, *, generator) |
ベルヌーイ分布から乱数を生成します。 |
torch.multinomial(input, num_samples, replacement, generator) |
多項分布のサンプリングを行います。 |
torch.normal(mean, std, out) |
正規分布から乱数を生成します。 |
torch.poisson(input, generator) |
ポアソン分布から乱数を生成します。 |
シリアライズ
| 関数 | 説明 |
|---|---|
torch.save(obj, f, pickle_module, pickle_protocol) |
オブジェクトをファイルに保存します。 |
torch.load(f, map_location, pickle_module, weights_only) |
ファイルからオブジェクトを読み込みます。 |
勾配制御
| 関数 | 説明 |
|---|---|
torch.no_grad() |
コンテキストマネージャ。勾配計算を無効にします。 |
torch.enable_grad() |
コンテキストマネージャ。勾配計算を有効にします。 |
torch.set_grad_enabled(grad) |
勾配計算を有効にするかどうかを設定します。 |
torch.is_grad_enabled() |
勾配計算が有効かどうかを確認します。 |
torch.inference_mode() |
コンテキストマネージャ。推論モード(勾配とautogradを無効にします)。 |
torch.is_inference_mode_enabled() |
推論モードが有効かどうかを確認します。 |
数学演算 - 点操作
数学演算 - リダクション操作
数学演算 - 比較操作
数学演算 - スペクトル操作
数学演算 - その他の操作
線形代数 (BLAS と LAPACK)
デバイス管理
| 関数 | 説明 |
|---|---|
torch.cuda.is_available() |
CUDA が利用可能かどうかを確認する。 |
torch.cuda.device_count() |
CUDA デバイスの数を返す。 |
torch.cuda.current_device() |
現在の CUDA デバイスインデックスを返す。 |
torch.cuda.device(name) |
デバイスオブジェクトを作成する。 |
torch.cuda.device_context(device) |
デバイスコンテキストを作成する。 |
torch.device(device) |
デバイスオブジェクトを作成する(例:'cpu' 或 'cuda:0')。 |
torch.Tensor.to(device) |
テンソルを指定されたデバイスに移動する。 |
torch.get_device_module(device_type) |
デバイスモジュールを取得する(cuda、mps など)。 |
並列計算
| 関数 | 説明 |
|---|---|
torch.get_num_threads() |
CPU 操作に使用される総スレッド数を取得する。 |
torch.set_num_threads(int) |
CPU 操作に使用されるスレッド数を設定する。 |
torch.get_num_interop_threads() |
inter-op 並列スレッド数を取得する。 |
torch.set_num_interop_threads(int) |
inter-op 並列スレッド数を設定する。 |
ユーティリティ関数
| 関数 | 説明 |
|---|---|
torch.compiled_with_cxx11_abi() |
C++11 ABI を使用してコンパイルされているかどうかを確認する。 |
torch.result_type(tensor, other) |
操作結果の dtype を返す。 |
torch.can_cast(from_dtype, to_dtype) |
データ型を変換できるかどうかを確認する。 |
torch.promote_types(type1, type2) |
昇格後のデータ型を返す。 |
torch.use_deterministic_algorithms(mode, warn_only) |
決定論的アルゴリズムを有効/無効にする。 |
torch.are_deterministic_algorithms_enabled() |
決定論的アルゴリズムが有効かどうかを確認する。 |
torch.is_deterministic_algorithms_warn_only_enabled() |
決定論的アルゴリズムが警告モードかどうかを確認する。 |
torch.set_deterministic_debug_mode(debug_mode) |
決定論的デバッグモードを設定する。 |
torch.get_deterministic_debug_mode() |
決定論的デバッグモードを取得する。 |
torch.set_float32_matmul_precision(precision) |
float32 行列乗算の精度を設定する。 |
torch.get_float32_matmul_precision() |
float32 行列乗算の精度を取得する。 |
torch.set_warn_always(enabled) |
警告を常に表示するかどうかを設定する。 |
torch.is_warn_always_enabled() |
警告を常に表示するかどうかを確認する。 |
torch.vmap(fn, in_dims, out_dims, randomness, chunk_size) |
ベクトル化マップ。 |
torch._assert(condition, message) |
アサーションチェック(内部使用)。 |
torch.typename(t) |
型の文字列表現を返す。 |
コンパイル最適化
| 関数 | 説明 |
|---|---|
torch.compile(model, backend, options, dynamic) |
PyTorch モデルをコンパイルして最適化する。 |
例
例
import torch
# テンソルの作成
x = torch.tensor([1, 2, 3])
y = torch.zeros(2, 3)
# 数学演算
z = torch.add(x, 1) # 要素ごとに 1 を加算
print(z)
# インデックスとスライス
mask = x > 1
selected = torch.masked_select(x, mask)
print(selected)
# デバイス管理
if torch.cuda.is_available():
device = torch.device('cuda')
x = x.to(device)
print(x.device)
# 行列演算
a = torch.randn(3, 4)
b = torch.randn(4, 5)
c = torch.matmul(a, b)
print(c.shape)
# 勾配計算
x = torch.tensor([1., 2., 3.], requires_grad=True)
y = x.sum()
y.backward()
print(x.grad)
# テンソルの作成
x = torch.tensor([1, 2, 3])
y = torch.zeros(2, 3)
# 数学演算
z = torch.add(x, 1) # 要素ごとに 1 を加算
print(z)
# インデックスとスライス
mask = x > 1
selected = torch.masked_select(x, mask)
print(selected)
# デバイス管理
if torch.cuda.is_available():
device = torch.device('cuda')
x = x.to(device)
print(x.device)
# 行列演算
a = torch.randn(3, 4)
b = torch.randn(4, 5)
c = torch.matmul(a, b)
print(c.shape)
# 勾配計算
x = torch.tensor([1., 2., 3.], requires_grad=True)
y = x.sum()
y.backward()
print(x.grad)
出力結果:
tensor([2, 3, 4]) tensor([2, 3])
より詳細な情報が必要な場合は、参照してくださいPyTorch 公式ドキュメント。
その他の拡張