ホームページ  >  記事  >  テクノロジー周辺機器  >  PyTorchを学ぶにはどうすればよいですか?簡単すぎる

PyTorchを学ぶにはどうすればよいですか?簡単すぎる

WBOY
WBOY転載
2024-03-07 19:46:11624ブラウズ

多くの友人が、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

GPU アクセラレーション

PyTorch を使用すると、CPU と GPU を簡単に切り替えることができます。 .to(device) を使用するだけです:

device = "cuda" if torch.cuda.is_available() else "cpu"tensor = tensor.to(device)

Autograd: 自動微分

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()

JIT
PyTorch はデフォルトで Eager モードで実行されますが、モデルのジャストインタイム (JIT) コンパイルも提供します:

rreeee

以上がPyTorchを学ぶにはどうすればよいですか?簡単すぎるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。