博客地址:https://www.cnblogs.com/zylyehuo/
用最通俗的“做菜”比喻来讲讲一个典型的深度学习训练流程:
1. 准备食材(数据准备)
-
食材:时尚服饰图片 + 标签(比如“鞋子”“衬衫”)
-
切菜:把图片分成「训练集」和「测试集」,一次处理一小盘(batch),这样不会下锅(显存)爆炸。
2. 准备厨具(模型搭建)
-
平底锅(Flatten 层):把 28×28 的图片“摊平”,变成一长条面团(向量)。
-
锅铲(Linear 层):把这条面团分成 10 份(对应 10 种服饰),然后尝出“味道”好坏(logits)。
3. 调味料(损失函数)
-
味道评分(CrossEntropyLoss):把锅铲出来的 10 份“口味”跟真实标签做对比,打分(损失值)。
-
分数越低越好:代表锅铲做得越对味。
4. 火候控制(优化器)
-
火力大小(学习率 lr=0.1):火太大易糊,太小不熟,用 SGD 小步烹饪。
-
翻炒(反向传播 + 参数更新):不断根据味道评分微调锅铲角度(网络权重),让菜越炒越香。
5. 厨艺验收(度量函数)
-
训练时当场尝一口(计算训练集准确率 & 损失)
-
出锅后请客再尝(用测试集评估准确率,保证不过拟合,也能做给新客人吃)
6. 厨房监控(可视化)
-
打分板(Accumulator):记录每盘尝到的口味分数与正确率
-
实时大屏(Animator):把每一轮炒菜后的分数/准确率用折线图画出来——
-
蓝线:味道评分(损失)要一路下降
-
紫线:训练客人给的分(训练准确率)要一路上升
-
绿线:测试客人给的分(测试准确率)也要上升并稳定
7. 循环烹饪(训练轮数)
-
第 1 轮:先培训小助手(train_epoch_ch3)做第一遍炒菜 → 当场尝一口 → 记录分数
-
第 2 轮:再培训一遍 → 再尝 → …
-
重复 N 轮,直到菜品(模型)足够香。