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