ホームページ > 記事 > テクノロジー周辺機器 > PyTorchを学ぶにはどうすればよいですか?簡単すぎる
多くの友人が、PyTorch の学習方法を私に尋ねてきました。実践の結果、初心者はいくつかの概念と使用法をマスターするだけで十分であることがわかりました。この簡潔なガイドの概要を見てみましょう。
PyTorch のテンソルは、NumPy の ndarray に似た多次元配列ですが、GPU 上で実行できます:
import torch# Create a 2x3 tensortensor = torch.tensor([[1, 2, 3], [4, 5, 6]])print(tensor)
PyTorch は動的計算グラフを使用して、操作の実行中にその場で計算グラフを構築します。これにより、実行時にグラフを柔軟に変更できます:
# Define two tensorsa = torch.tensor([2.], requires_grad=True)b = torch.tensor([3.], requires_grad=True)# Compute resultc = a * bc.backward()# Gradientsprint(a.grad)# Gradient w.r.t a
PyTorch を使用すると、CPU と GPU を簡単に切り替えることができます。 .to(device) を使用するだけです:
device = "cuda" if torch.cuda.is_available() else "cpu"tensor = tensor.to(device)
PyTorch の autograd は、tensor のすべての演算に自動微分関数を提供します。requires_grad=True に設定します。計算を追跡できます。 :
#x = torch.tensor([2.], requires_grad=True)y = x**2y.backward()print(x.grad)# Gradient of y w.r.t xモジュラー ニューラル ネットワークPyTorch は、ニューラル ネットワーク アーキテクチャを定義し、サブクラス化を通じてカスタム レイヤを作成するための nn.Module クラスを提供します。 事前定義された層と損失関数PyTorch は、nn モジュールでさまざまな事前定義された層、損失関数、最適化アルゴリズムを提供します。
import torch.nn as nnclass SimpleNN(nn.Module):def __init__(self):super().__init__()self.fc = nn.Linear(1, 1)def forward(self, x):return self.fc(x)Dataset および DataLoader効率的なデータ処理とバッチ処理を実現するために、PyTorch は Dataset クラスと DataLoader クラスを提供します。
loss_fn = nn.CrossEntropyLoss()optimizer = torch.optim.Adam(model.parameters(), lr=0.001)モデル トレーニング (ループ) 通常、PyTorch トレーニングは次のとおりです。次のパターン: 順方向伝播、損失の計算、逆方向パス、パラメータ更新:
from torch.utils.data import Dataset, DataLoaderclass CustomDataset(Dataset):# ... (methods to define)data_loader = DataLoader(dataset, batch_size=32, shuffle=True)モデルのシリアル化torch.save() と torch.load() を使用するモデルの保存とロード:
for epoch in range(epochs):for data, target in data_loader:optimizer.zero_grad()output = model(data)loss = loss_fn(output, target)loss.backward()optimizer.step()JITPyTorch はデフォルトで Eager モードで実行されますが、モデルのジャストインタイム (JIT) コンパイルも提供します: rreeee
以上がPyTorchを学ぶにはどうすればよいですか?簡単すぎるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。