PyTorch 是一个流行的深度学习库,它提供了易于使用的API和动态计算图。在这个教程中,我们将学习如何使用PyTorch构建和训练神经网络。

1. 安装 PyTorch

在开始之前,你需要确保你的系统已经安装了PyTorch。你可以通过以下命令进行安装:

pip install torch torchvision

2. 神经网络基础

神经网络由多个层组成,包括输入层、隐藏层和输出层。每个层都包含多个神经元,这些神经元通过权重和偏置连接。

2.1 神经元

神经元是神经网络的基本单元,它通过加权求和输入并应用激活函数来产生输出。

2.2 激活函数

激活函数用于引入非线性,使得神经网络能够学习复杂函数。

3. PyTorch 中的神经网络

在PyTorch中,我们可以使用 torch.nn.Module 类来定义自己的神经网络。

3.1 定义模型

以下是一个简单的全连接神经网络示例:

import torch.nn as nn

class SimpleNet(nn.Module):
    def __init__(self):
        super(SimpleNet, self).__init__()
        self.fc1 = nn.Linear(784, 128)
        self.fc2 = nn.Linear(128, 64)
        self.fc3 = nn.Linear(64, 10)

    def forward(self, x):
        x = torch.relu(self.fc1(x))
        x = torch.relu(self.fc2(x))
        x = self.fc3(x)
        return x

3.2 训练模型

在PyTorch中,我们可以使用 torch.optim 模块来定义优化器,并使用 torch.nn.CrossEntropyLoss 作为损失函数。

import torch.optim as optim

model = SimpleNet()
optimizer = optim.Adam(model.parameters(), lr=0.001)
criterion = nn.CrossEntropyLoss()

# 假设你已经有了一些数据和标签
# train_loader = DataLoader(dataset, batch_size=64, shuffle=True)

# for epoch in range(num_epochs):
#     for data, target in train_loader:
#         optimizer.zero_grad()
#         output = model(data)
#         loss = criterion(output, target)
#         loss.backward()
#         optimizer.step()

4. 扩展阅读

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

PyTorch Logo