some 知识点 knowledge

输出 查看模型结构 使用print(model) model.name_module() model.named_parameters()等方式查看层级结构

对于vit reanet yolox等常见架构 结合官方文档和源吗

确定可冻结/可训练的模块 在vit中 可以冻结 patch_embed 和前几层blocks 只微调后面几层+分类头

通过requires_grad控制梯度更新 冻结backbone 解冻特定层

微调的时候 不同模块用不同的学习率

还有的是在不同的epoch使用不同的学习率

学习率调度知识点:

按epoch变化 step decay 阶梯衰减 每隔固定epoch 学习率*一个衰减因子

多阶段衰减,在预设的epoch节点 衰减

linear warmup_decay 线性预热+衰减 前几个epoch线性增加 learning rate 之后按照step/cosine衰减

啥是cosine decay?余弦衰减 学习率就像余弦的图像一样衰减下来

关于早停机制、保存最佳模型、最终模型是否最优

在深度学习训练中,训练loss会持续下降,但是验证指标(比如准确率 mAp f1 )往往会线上升后下降 这就是过拟合

F1的计算就是:

不能只是保存最后的checkpoint 而是要监控验证指标,保存历史最佳

最好的标准是自己决定的:你所关心的指标达到最优就是 最好

早停机制 :当模型在验证集上不再变好时,提前终止训练, 在每个epoch 或者是n个step 在验证集上评估指标 如果连续 m个epoch没有提升,就停止训练

让我想起了一个叫做优化器的东西。

optimizer = torch.optim.AdamW(

model.parameters(),#model.parameters这些参数是需要被更新的

lr=5e-5,#学习率

weight_decay=0.05,#衰减

betas=(0.9, 0.98) # ViT 常用 beta1=0.9 当前梯度占0.1 过去梯度占0.9 beta2=0.98梯度平方的平滑,控制步长缩放,防止某些参数更新太猛

scheduler = get_cosine_schedule_with_warmup(

optimizer,

num_warmup_steps=500,#学习率这样持续500个step 注意step和epoch的区别 训练一次就能看出来了 epoch是多个step

num_training_steps=total_steps

)

相关推荐
victory04311 天前
llama2 MLP 门控FFN
深度学习·transformer
数据分享者1 天前
猫狗图像分类数据集-21616张标准化128x128像素JPEG图像-适用于计算机视觉教学研究与深度学习模型训练-研究人员、开发者和学生提供实验平台
深度学习·计算机视觉·分类
小途软件1 天前
ssm607家政公司服务平台的设计与实现+vue
java·人工智能·pytorch·python·深度学习·语言模型
汤姆yu1 天前
基于深度学习的暴力行为识别系统
人工智能·深度学习
进击切图仔1 天前
Realsense 相机测试及说明
网络·人工智能·深度学习·数码相机
头发够用的程序员1 天前
Ultralytics 代码库深度解读【六】:数据加载机制深度解析
人工智能·pytorch·python·深度学习·yolo·边缘计算·模型部署
540_5401 天前
ADVANCE Day43
人工智能·python·深度学习
小途软件1 天前
基于深度学习的垃圾识别分类研究与实现
人工智能·pytorch·python·深度学习·语言模型
Salt_07281 天前
DAY 58 经典时序预测模型 1
人工智能·python·深度学习·神经网络·机器学习
小途软件1 天前
基于深度学习的人脸属性增强器
java·人工智能·pytorch·python·深度学习·语言模型