PyTorch 是一个流行的开源机器学习库,广泛用于构建深度学习模型。以下是一些 PyTorch 的核心概念和指南:
安装 PyTorch
首先,您需要安装 PyTorch。您可以从PyTorch 官网下载适合您系统的安装包。
核心概念
- 张量 (Tensor): 张量是 PyTorch 中的基本数据结构,类似于 NumPy 的数组。
- 神经网络 (Neural Network): PyTorch 提供了构建和训练神经网络的各种工具和层。
- 损失函数 (Loss Function): 损失函数用于衡量模型预测值与真实值之间的差异。
快速开始
导入 PyTorch 库:
import torch
创建张量:
x = torch.tensor([1, 2, 3])
神经网络示例:
import torch.nn as nn class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 = nn.Conv2d(1, 20, 5) self.conv2 = nn.Conv2d(20, 50, 5) self.fc1 = nn.Linear(4*4*50, 500) self.fc2 = nn.Linear(500, 10) def forward(self, x): x = torch.relu(self.conv1(x)) x = torch.max_pool2d(x, 2, 2) x = torch.relu(self.conv2(x)) x = torch.max_pool2d(x, 2, 2) x = x.view(-1, 4*4*50) x = torch.relu(self.fc1(x)) x = self.fc2(x) return x
训练模型:
net = Net() optimizer = torch.optim.SGD(net.parameters(), lr=0.001, momentum=0.9) loss_function = nn.CrossEntropyLoss() for epoch in range(2): # loop over the dataset multiple times running_loss = 0.0 for i, data in enumerate(trainloader, 0): inputs, labels = data optimizer.zero_grad() outputs = net(inputs) loss = loss_function(outputs, labels) loss.backward() optimizer.step() running_loss += loss.item() print(f'Epoch {epoch + 1}, Loss: {running_loss / len(trainloader)}')
资源
PyTorch Logo