先定义任务和数据,再谈网络
图像分类需要输入、标签和评价指标。训练集用于学习,验证集用于选择,测试集只用于最终评估,三者不能随意混用。
split = {'train': 0.7, 'validation': 0.15, 'test': 0.15}常见误区:先选大网络再找数据会把任务定义倒置。
训练、模型和推理各在做什么?置信度(confidence)为什么仍不能直接变成动作?
0 / 6 · 逐节作答;页面刷新后重新开始。
图像分类需要输入、标签和评价指标。训练集用于学习,验证集用于选择,测试集只用于最终评估,三者不能随意混用。
split = {'train': 0.7, 'validation': 0.15, 'test': 0.15}常见误区:先选大网络再找数据会把任务定义倒置。
前向传播得到分数,损失衡量预测与标签差异,反向传播计算梯度,优化器更新参数;一个epoch只是完整看过一次训练集。
scores = model(images)
loss = criterion(scores, labels)
loss.backward(); optimizer.step()常见误区:loss下降只说明训练目标变化,不证明泛化。
部署时不再更新参数,而是把新图像变成类别分数或概率。训练成功不保证新光照、背景和人群上仍可靠。
with no_grad():
probability = softmax(model(frame))常见误区:model.eval不是评价结果,只是推理模式。
最高概率只说明模型内部排序。阈值、未知类、分布外检测、业务规则和反馈证据仍需独立存在。
if max_probability < 0.90:
observation = None常见误区:confidence不是频率保证,更不是动作授权。
三分类模型需要按真实类别查看预测去向。类别不平衡时,accuracy可能很高,但少数类recall仍为0;Unknown还要单独计coverage。
recall = true_positive / actual_count
coverage = accepted / all_samples常见误区:accuracy高不能证明每个手势都可用。
只保存权重无法回答它用什么数据训练、如何评价、阈值是多少。Manifest应绑定数据哈希、算法、特征、指标、限制和权限声明。
manifest = {'datasetSha256': digest, 'threshold': 0.65, 'actionEligible': False}常见误区:模型权重脱离Manifest就无法复验来源与边界。
每一步都写下预期和实际观察;只改变一个变量,并把结论限定在当前证据范围内。
列出rock/paper/scissors每类至少三种光照、背景、距离和手型差异。
同一人的相邻帧不能跨train/test。否则测试指标会虚高。
说明哪两个手势最容易混淆,以及需要补哪类样本。
即使模型输出0.96,也要列出进入Driver前仍需通过的质量与动作检查。
DL课程的目标不是让学生把神经网络当魔法,而是能区分数据、训练、模型、推理、评价和安全使用边界,并知道每项证据能证明什么。
五项资源来自官方文档、高校课程或作者开放教材。外链只在主动点击时访问;先带着本页项目问题阅读,不要求一次学完。