下面给你一个从零开始的 Python 训练神经网络指南,分为概念 → 工具 → 示例 → 训练流程四部分,适合初学者,也能直接上手。
无论用什么框架,核心步骤都差不多:
准备数据
定义神经网络结构
选择损失函数和优化器
前向传播 + 反向传播
评估与调参
| 框架 | 适合人群 |
|---|---|
| PyTorch | 最推荐,灵活、学术 & 工程通用 |
| TensorFlow / Keras | 上手快,工业部署强 |
| Scikit-learn(MLP) | 简单小网络 |
| JAX | 高级用户 |
pip install torch torchvision
import torch
import torch.nn as nn
import torch.optim as optim
from torchvision import datasets, transforms
# 1. 数据
transform = transforms.ToTensor()
train_data = datasets.MNIST(
root='./data', train=True, download=True, transform=transform
)
train_loader = torch.utils.data.DataLoader(
train_data, batch_size=64, shuffle=True
)
# 2. 定义网络
class Net(nn.Module):
def __init__(self):
super().__init__()
self.net = nn.Sequential(
nn.Flatten(),
nn.Linear(28*28, 128),
nn.ReLU(),
nn.Linear(128, 10)
)
def forward(self, x):
return self.net(x)
model = Net()
# 3. 损失函数 & 优化器
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)
# 4. 训练
for epoch in range(5):
for x, y in train_loader:
pred = model(x)
loss = criterion(pred, y)
optimizer.zero_grad()
loss.backward()
optimizer.step()
print(f"Epoch {epoch+1}, Loss: {loss.item():.4f}")
✅ 这是一个完整可运行的神经网络训练示例
import tensorflow as tf
(x_train, y_train), _ = tf.keras.datasets.mnist.load_data()
x_train = x_train / 255.0
model = tf.keras.Sequential([
tf.keras.layers.Flatten(input_shape=(28,28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(
optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy']
)
model.fit(x_train, y_train, epochs=5, batch_size=64)
| 参数 | 作用 |
|---|---|
| epoch | 整个数据集训练次数 |
| batch_size | 每次更新参数用的样本数 |
| learning_rate | 学习速度(太大易崩,太小慢) |
| activation | 非线性能力(ReLU 最常用) |
model.cuda())如果你愿意,可以告诉我:
我可以直接给你定制教程 + 代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。