PyTorch 是一个流行的开源机器学习库,广泛用于构建深度学习模型。以下是一些 PyTorch 的核心概念和指南:

安装 PyTorch

首先,您需要安装 PyTorch。您可以从PyTorch 官网下载适合您系统的安装包。

核心概念

  • 张量 (Tensor): 张量是 PyTorch 中的基本数据结构,类似于 NumPy 的数组。
  • 神经网络 (Neural Network): PyTorch 提供了构建和训练神经网络的各种工具和层。
  • 损失函数 (Loss Function): 损失函数用于衡量模型预测值与真实值之间的差异。

快速开始

  1. 导入 PyTorch 库

    import torch
    
  2. 创建张量

    x = torch.tensor([1, 2, 3])
    
  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
    
  4. 训练模型

    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