PyTorch 是一个流行的开源机器学习库,特别适合于应用在深度学习项目中。本教程将为您介绍 PyTorch 的基础知识。

安装 PyTorch

首先,您需要安装 PyTorch。您可以从 PyTorch 官网 获取安装指南。

基础概念

张量 (Tensors)

PyTorch 中的所有数据都是以张量的形式存储的。张量类似于 NumPy 中的数组,但具有动态大小和自动微分能力。

  • 创建张量
    import torch
    tensor = torch.tensor([1, 2, 3])
    

自动微分

PyTorch 的一个强大功能是自动微分。这意味着您可以为您的模型计算梯度,而不需要手动编写梯度计算代码。

  • 计算梯度
    y = x ** 2
    y.backward()
    

神经网络

PyTorch 提供了构建和训练神经网络的简单方式。

  • 构建一个简单的神经网络
    import torch.nn as nn
    
    class Net(nn.Module):
        def __init__(self):
            super(Net, self).__init__()
            self.conv1 = nn.Conv2d(1, 6, 3)
            self.conv2 = nn.Conv2d(6, 16, 3)
            self.fc1 = nn.Linear(16 * 6 * 6, 120)
            self.fc2 = nn.Linear(120, 84)
            self.fc3 = nn.Linear(84, 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)
            x = x.view(-1, self.num_flat_features(x))
            x = torch.relu(self.fc1(x))
            x = torch.relu(self.fc2(x))
            x = self.fc3(x)
            return x
    
        def num_flat_features(self, x):
            size = x.size()[1:]  # 除批次大小外的所有维度
            num_features = 1
            for s in size:
                num_features *= s
            return num_features
    
    net = Net()
    

学习资源

如果您想深入了解 PyTorch,以下是一些推荐的学习资源:

希望这个教程能帮助您开始使用 PyTorch。祝您学习愉快!🎉