编写最小训练循环
遍历数据并更新权重
编写最小训练循环 是 CoddyKit 上的免费 Deep Learning Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Deep Learning Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Deep Learning Academy 课程共包含 4 节课。
本课时的部分内容尚未翻译,以英文显示。
From Steps to a Loop
You know the four moves of one iteration. Now you wrap them in a loop that walks over your data again and again until the model is trained. 🔁
Gather the Ingredients
Before looping you need three things: a model, a loss function, and an optimizer that holds your model's parameters. Set them up once, up front.
loss_fn = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters())Loop Over Epochs
The outer loop counts epochs, one full pass through your training data. A few epochs may be plenty for a small problem, more for a hard one.
for epoch in range(epochs):
...Loop Over Batches
Inside each epoch you iterate the dataloader, which hands you one batch of inputs and labels at a time instead of the whole dataset at once.
for x, y in dataloader:
...Zero, Then Forward
Start each batch by clearing old gradients, then run the forward pass to get predictions. Order matters: zero first, then predict.
optimizer.zero_grad()
pred = model(x)Measure, Then Learn
Compute the loss, call backward for gradients, then step the optimizer. These three lines are where every weight actually improves.
loss = loss_fn(pred, y)
loss.backward()
optimizer.step()The Full Skeleton
Stitch it together and you have a complete training loop. It is short on purpose: this same shape powers projects of every size.
for epoch in range(epochs):
for x, y in dataloader:
optimizer.zero_grad()
loss = loss_fn(model(x), y)
loss.backward()
optimizer.step()Watch the Loss
Print the loss each epoch so you can see learning happen. A number that trends down means your loop is working as intended.
print(epoch, loss.item())Why item Matters
Use loss.item to pull out a plain Python float. Logging the raw tensor instead keeps the whole computation graph alive and wastes memory.
If Loss Stalls
If the loss refuses to drop, suspect the basics first: a learning rate that is too high or too low, or a forgotten zero_grad each step.
Small but Complete
This loop is tiny yet it is genuinely complete. Everything fancier you meet later just adds validation, logging, or speed on top of these few lines.
Quick Check
What does the inner loop iterate over in a minimal training loop?
Recap
You built a real training loop: loop epochs, loop batches, then zero, forward, loss, backward, step. Print the loss to watch it learn. 🎉
常见问题解答
「编写最小训练循环」课时是免费的吗?
是的 — 「编写最小训练循环」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Deep Learning Academy 课程的其余内容,请升级到 CoddyKit PRO。 Deep Learning Academy 课程共包含 4 节课。
「编写最小训练循环」这节课中我会学到什么?
遍历数据并更新权重 你通过在浏览器中直接运行的动手代码来练习 Deep Learning Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Deep Learning Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Deep Learning Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「编写最小训练循环」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Deep Learning Academy 课中编写并运行代码吗?
能。每节 Deep Learning Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 前向传播、损失、反向传播与更新
- 编写最小训练循环
- 训练时跟踪准确率
- 训练模式与评估模式