Python AI 实战:从线性回归到 MNIST 图像分类
环境搭建与基础准备
在开始之前,确保你的开发环境中已安装 PyTorch 及相关依赖。这通常是进入深度学习领域的第一个门槛。
# 安装 PyTorch 及 torchvision
pip install torch torchvision
# 其他常用科学计算库
pip install numpy matplotlib
从零构建线性回归模型
线性回归是理解机器学习最直观的起点。我们不需要复杂的架构,只需一个能拟合数据的简单模型。
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(LinearModel, self).__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 (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()
()

