神经网络是深度学习中的一种核心模型,而 PyTorch 是一个流行的深度学习框架,非常适合于构建和训练神经网络。以下是一些基础教程,帮助您入门 PyTorch 神经网络。

快速开始

  1. 安装 PyTorch
    首先,您需要在您的系统上安装 PyTorch。您可以从PyTorch官网下载并安装最新版本的 PyTorch。

  2. 创建一个简单的神经网络
    下面是一个简单的神经网络示例:

    import torch
    import torch.nn as nn
    import torch.optim as optim
    
    # 定义一个简单的神经网络
    class SimpleNN(nn.Module):
        def __init__(self):
            super(SimpleNN, self).__init__()
            self.fc1 = nn.Linear(784, 128)
            self.fc2 = nn.Linear(128, 10)
    
        def forward(self, x):
            x = torch.relu(self.fc1(x))
            x = self.fc2(x)
            return x
    
    # 实例化神经网络
    model = SimpleNN()
    
    # 定义损失函数和优化器
    criterion = nn.CrossEntropyLoss()
    optimizer = optim.SGD(model.parameters(), lr=0.01)
    
  3. 训练神经网络
    在训练神经网络之前,您需要准备一些数据。这里我们使用 MNIST 数据集作为例子:

    # 加载 MNIST 数据集
    train_loader = torch.utils.data.DataLoader(
        datasets.MNIST(root='./data', train=True, download=True,
                        transform=transforms.ToTensor()),
        batch_size=64, shuffle=True)
    

    然后您可以开始训练模型:

    # 训练模型
    for epoch in range(5):  # 5 个训练周期
        running_loss = 0.0
        for i, data in enumerate(train_loader, 0):
            inputs, labels = data
            optimizer.zero_grad()
            outputs = model(inputs)
            loss = criterion(outputs, labels)
            loss.backward()
            optimizer.step()
            running_loss += loss.item()
            if i % 100 == 99:    # 每 100 个 mini-batch 打印一次
                print(f'[{epoch + 1}, {i + 1}] loss: {running_loss / 100:.3f}')
                running_loss = 0.0
    print('Finished Training')
    

深入阅读

如果您想要深入了解 PyTorch 和神经网络,以下是一些推荐的资源:

希望这些基础教程能够帮助您开始使用 PyTorch 进行神经网络的学习和实践!

相关资源