for epoch in range(1, 6):
train(epoch)
```
这个循环就是深度学习的核心:前向传播 -> 计算损失 -> 反向传播 -> 更新参数。多跑几轮,损失应该会肉眼可见地下降。
步骤6:测试模型(看看“考试成绩”)
```python
def test():
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(f'"
测试集:平均损失:{test_loss:.4f},准确率:{correct}/{len(test_loader.dataset)} ({accuracy:.2f}%)"
')
test()
```
如果一切顺利,这个简单模型在MNIST测试集上的准确率应该能轻松达到97%以上。看到这个结果,是不是感觉很有成就感?你已经成功运行了一个真正的神经网络!
恭喜你完成了从0到1的突破!但这条路还很长,接下来你可以:
1.玩转模型结构:试试把全连接层换成卷积层(`nn.Conv2d`),准确率可能会提升。这就是深度学习调参和创新的开始。
2.挑战新数据集:`torchvision`里还有CIFAR-10(彩色物体分类)、Fashion-MNIST(衣物分类)等更有挑战性的数据集。
3.学习使用GPU:回去重新安装CUDA版本的PyTorch,然后在代码里把模型和数据用`.to(‘cuda’)`放到GPU上,体验飞一般的训练速度。
4.探索项目与社区:去GitHub上找一些有趣的开源项目,阅读别人的代码。关注PyTorch官方论坛和教程。
记住,最好的学习方式就是动手和模仿。别怕出错,每一个错误信息都是你进步的台阶。AI框架这个“乐高世界”大门已经为你打开,接下来,就去创造属于你的那个智能体吧!
