Viele Freunde haben mich gefragt, wie man PyTorch lernt. Die Praxis hat gezeigt, dass Anfänger nur ein paar Konzepte und die Verwendung beherrschen müssen. Werfen wir einen Blick auf die Zusammenfassung dieses kurzen Leitfadens!
Tensoren in PyTorch sind mehrdimensionale Arrays, ähnlich den Ndarrays von NumPy, können aber auf der GPU ausgeführt werden:
import torch# Create a 2x3 tensortensor = torch.tensor([[1, 2, 3], [4, 5, 6]])print(tensor)
PyTorch verwendet dynamische Berechnungsdiagramme Operationen ausführen, wenn ausgeführt Operationen Erstellen Sie Rechendiagramme im laufenden Betrieb, was die Flexibilität bietet, das Diagramm zur Laufzeit zu ändern:
# 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 ermöglicht den einfachen Wechsel zwischen CPU und GPU. Verwenden Sie einfach. TO (Gerät):
device = "cuda" if torch.cuda.is_available() else "cpu"tensor = tensor.to(device)
PyTorch's AutOgrad bietet eine automatische Differenzierungsfunktion für alle Vorgänge des Tensors. stellt die nn.Module-Klasse bereit, um die neuronale Netzwerkarchitektur zu definieren und benutzerdefinierte Schichten durch Unterklassen zu erstellen:
x = torch.tensor([2.], requires_grad=True)y = x**2y.backward()print(x.grad)# Gradient of y w.r.t x
PyTorch bietet verschiedene vordefinierte Schichten im nn-Modul, Verlustfunktion und Optimierungsalgorithmus:
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)
Um eine effiziente Datenverarbeitung und Stapelverarbeitung zu erreichen, bietet PyTorch Dataset- und DataLoader-Klassen:
loss_fn = nn.CrossEntropyLoss()optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
Normalerweise folgt das PyTorch-Training dem folgenden Muster: Vorwärtsdurchlauf, Rechenverlust, Rückwärts Pass- und Parameteraktualisierung:
from torch.utils.data import Dataset, DataLoaderclass CustomDataset(Dataset):# ... (methods to define)data_loader = DataLoader(dataset, batch_size=32, shuffle=True)
Verwenden Sie Torch.save() und Torch.load(), um das Modell zu speichern und zu laden:
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()
PyTorch läuft standardmäßig im Eager-Modus, aber Bietet auch eine Just-in-Time-Kompilierung (JIT) für Modelle:
# Savetorch.save(model.state_dict(), 'model_weights.pth')# Loadmodel.load_state_dict(torch.load('model_weights.pth'))
Das obige ist der detaillierte Inhalt vonWie lerne ich PyTorch? zu einfach. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!