Python AI 实战:从线性回归到 MNIST 图像分类
一、环境搭建与 Hello World
开始之前,先准备好开发环境。PyTorch 是目前最流行的深度学习框架之一,安装时建议直接通过 pip 获取稳定版。
pip install torch torchvision numpy matplotlib
1.1 第一个 AI 程序:线性回归
让我们写一个最简单的模型来理解训练流程。这里用线性回归拟合一条直线,虽然简单,但涵盖了数据生成、模型定义、损失计算和参数更新的核心步骤。
import torch
import torch.nn as nn
import numpy as np
import matplotlib.pyplot as plt
# 生成训练数据:y = 2x + 1 + noise
x = torch.linspace(0, 10, 100).unsqueeze(1)
y = 2 * x + 1 + torch.randn(100, 1) * 0.5
# 定义模型
class LinearModel(nn.Module):
def __init__(self):
super().__init__()
self.linear = nn.Linear(1, 1)
def forward(self, x):
return self.linear(x)
# 创建实例
model = LinearModel()
# 损失函数和优化器
criterion = nn.MSELoss()
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
# 训练循环
epochs = 100
for epoch in range(epochs):
outputs = model(x)
loss = criterion(outputs, y)
optimizer.zero_grad()
loss.backward()
optimizer.step()
(epoch + ) % == :
()
torch.no_grad():
predicted = model(x)
plt.scatter(x.numpy(), y.numpy(), label=)
plt.plot(x.numpy(), predicted.numpy(), , label=)
plt.legend()
plt.show()
()

