核心内容摘要
探索奇趣六七岁:XBXBXBXB点亮童年无限可能
训练参数的整体比喻想象你在教一个完全不懂事的小孩认动物模型 小孩的大脑数据 动物图卡训练 教小孩的过程参数 教学方法和规则
核心参数分类四大金刚训练参数四大金刚
学习率参数 → 小孩的学习速度
批次参数 → 一次教几张卡片
优化器参数 → 教学方法
正则化参数 → 防止学偏的规则
详细参数解析从简单到复杂
1 学习率参数最重要的lr或learning_rate学习率比喻小孩的学习速度学习率
001 # 学得很慢很仔细 学习率
01 # 正常学习速度 学习率
1 # 学得很快但可能粗心影响太大如
1学得快但容易学歪记不住细节太小如
0001学得超级慢要教很久合适
001-
01平衡速度和精度实际效果# 错误的学习率 lr
1 # 结果❌ 学疯了乱认动物猫认成狗 lr
00001 # 结果❌ 学了一星期还在认猫 # 正确的学习率 lr
001 # 结果✅ 稳步进步一天认10种动物lr_scheduler学习率调度器比喻学习计划的调整策略# 常见的调度策略 #
阶梯下降StepLR 策略每学10课放慢一点速度 用法model训练10轮后学习率×
1 #
指数下降ExponentialLR 策略越学越慢指数级放慢 用法每轮学习率都×
9 #
余弦退火CosineAnnealingLR 策略先快后慢像余弦曲线 用法学习率从高到低平滑下降 #
预热Warmup 策略刚开始慢点热身后加速 用法前几轮用很小的学习率然后正常
2 批次参数Batch Parametersbatch_size批次大小比喻一次给小孩看几张卡片batch_size 1 # 一次看1张 → 很仔细但很慢 batch_size 16 # 一次看16张 → 平衡 batch_size 256 # 一次看256张 → 很快但可能眼花黄金法则GPU内存大用大batch如
128GPU内存小用小batch如
16一般设置
16、
64num_workers数据加载进程数比喻有几个助教帮你准备卡片num_workers 0 # 没有助教自己准备 → 慢 num_workers 4 # 4个助教 → 快 num_workers 8 # 8个助教 → 最快但可能混乱建议CPU核心多设置
一般情况设置
Windows系统建议
兼容性问题
3 优化器参数Optimizer优化器选择不同的教学方法#
SGD随机梯度下降→ 传统老师 特点严格一步步来 适用大部分情况都行 optimizer torch.optim.SGD(model.parameters(), lr
0.
#
Adam → 智能老师最常用 特点自适应调整聪明 适用深度学习首选 optimizer torch.optim.Adam(model.parameters(), lr
0.
#
AdamW → 改进的智能老师 特点更稳定防过拟合 适用Transformer等现代模型 optimizer torch.optim.AdamW(model.parameters(), lr
0.
#
RMSprop → 平稳的老师 特点平稳更新适合RNN 适用循环神经网络 optimizer torch.optim.RMSprop(model.parameters(), lr
0.
优化器关键参数# Adam优化器的完整参数 optimizer torch.optim.Adam( model.parameters(), lr
001, # 学习率 betas(
9,
0.
, # 动量参数 eps1e-8, # 防止除零的小数 weight_decay0 # 权重衰减防过拟合 )betas参数解释beta
1
9惯性保持之前的学习方向beta
2
999适应根据不同参数调整步伐比喻学骑自行车时beta1让你保持平衡不倒beta2让你根据路面调整踩踏力度
4 正则化参数防止学偏weight_decay权重衰减比喻给小孩的饮食控制防止吃太胖weight_decay 0 # 不控制可能过度复杂 weight_decay
0001 # 轻微控制推荐 weight_decay
01 # 严格控制作用防止模型参数变得太复杂提高泛化能力dropout随机丢弃比喻考试时随机遮挡部分知识点强迫全面学习# 在模型中加入dropout self.dropout nn.Dropout(p
0.