PyTorch入门指南:安装、环境与第一个神经网络

开发者故事集 2019-05-02 ⋅ 24 阅读

PyTorch是一个基于Python的开源机器学习库,它提供了丰富的工具和功能,方便用户进行深度学习和神经网络模型的开发和训练。本教程将指导您安装PyTorch,配置开发环境,并使用PyTorch构建并训练您的第一个神经网络模型。

步骤一:安装PyTorch

安装PyTorch之前,首先需要安装Python。推荐使用Anaconda来管理Python和相关的包。

  1. Anaconda官网下载和安装适用于您操作系统的Anaconda发行版。

  2. 打开终端或命令提示符,并创建一个新的Anaconda环境,命名为"pytorch"(或您喜欢的任何名称): conda create --name pytorch python=3.8

  3. 激活新创建的环境:

    • 对于Windows用户:conda activate pytorch
    • 对于Mac和Linux用户:source activate pytorch
  4. 使用pip命令安装PyTorch和相关依赖包: pip install torch torchvision

现在,您已成功安装了PyTorch及其相关依赖。

步骤二:配置开发环境

为了更方便地使用PyTorch,我们建议使用Jupyter Notebook作为编程环境。Jupyter Notebook提供一个交互式的界面,可以同时运行代码和编写文档。

  1. 在终端或命令提示符中,安装Jupyter Notebook: pip install jupyter

  2. 启动Jupyter Notebook: jupyter notebook

  3. 在浏览器中打开新的Jupyter Notebook界面。

现在,您已配置好了Jupyter Notebook作为您的开发环境,并准备好编写和运行PyTorch代码。

步骤三:构建第一个神经网络

让我们使用PyTorch构建一个简单的神经网络模型,并使用MNIST手写数字数据集进行训练。

  1. 导入必要的库:

    import torch
    import torch.nn as nn
    import torch.optim as optim
    from torchvision import datasets, transforms
    
  2. 定义神经网络模型:

    class NeuralNetwork(nn.Module):
        def __init__(self):
            super(NeuralNetwork, self).__init__()
            self.fc1 = nn.Linear(784, 128)
            self.fc2 = nn.Linear(128, 10)
    
        def forward(self, x):
            x = x.view(x.size(0), -1)
            x = torch.relu(self.fc1(x))
            x = self.fc2(x)
            return x
    
    model = NeuralNetwork()
    
  3. 加载数据集:

    transform = transforms.Compose([
        transforms.ToTensor(),
        transforms.Normalize((0.1307,), (0.3081,))
    ])
    
    train_dataset = datasets.MNIST('data', train=True, download=True, transform=transform)
    test_dataset = datasets.MNIST('data', train=False, download=True, transform=transform)
    
    train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=64, shuffle=True)
    test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=64, shuffle=True)
    
  4. 定义损失函数和优化器:

    criterion = nn.CrossEntropyLoss()
    optimizer = optim.SGD(model.parameters(), lr=0.01)
    
  5. 训练模型:

    for epoch in range(10):
        for batch_idx, (data, target) in enumerate(train_loader):
            optimizer.zero_grad()
            output = model(data)
            loss = criterion(output, target)
            loss.backward()
            optimizer.step()
    
            if batch_idx % 100 == 0:
                print('Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format(
                    epoch, batch_idx * len(data), len(train_loader.dataset),
                    100. * batch_idx / len(train_loader), loss.item()))
    
  6. 测试模型:

    model.eval()
    test_loss = 0
    correct = 0
    
    with torch.no_grad():
        for data, target in test_loader:
            output = model(data)
            test_loss += criterion(output, target).item()
            pred = output.argmax(dim=1, keepdim=True)
            correct += pred.eq(target.view_as(pred)).sum().item()
    
    test_loss /= len(test_loader.dataset)
    accuracy = 100. * correct / len(test_loader.dataset)
    
    print('\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\n'.format(
        test_loss, correct, len(test_loader.dataset), accuracy))
    

恭喜!您已成功构建、训练和测试了您的第一个神经网络模型。

总结

本教程介绍了如何安装PyTorch,配置开发环境,并使用PyTorch构建和训练您的第一个神经网络模型。希望这个入门指南对您开始使用PyTorch和深度学习有所帮助。祝您在深度学习领域取得成功!


全部评论: 0

    我有话说: