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

)

相关推荐
简简单单做算法21 小时前
基于GA遗传优化的Transformer-LSTM网络模型的时间序列预测算法matlab性能仿真
深度学习·matlab·lstm·transformer·时间序列预测·ga遗传优化·电池剩余寿命预测
龙文浩_1 天前
AI中NLP的文本张量表示方法在自然语言处理中的演进与应用
人工智能·pytorch·深度学习·神经网络·自然语言处理
极光代码工作室1 天前
基于BERT的新闻文本分类系统
深度学习·nlp·bert·文本分类
XINVRY-FPGA1 天前
XC7VX690T-2FFG1157I Xilinx AMD Virtex-7 FPGA
arm开发·人工智能·嵌入式硬件·深度学习·fpga开发·硬件工程·fpga
AI视觉网奇1 天前
生成GeoGebra
人工智能·深度学习
古希腊掌管代码的神THU1 天前
【清华代码熊】图解 Gemma 4 架构设计细节
人工智能·深度学习·自然语言处理
Purple Coder1 天前
7-RNN 循环网络层
人工智能·rnn·深度学习
大写的z先生1 天前
【深度学习 | 论文精读】Qwen-VL:从“纯文本”到“火眼金睛”,通向多模态大模型的进阶之路
人工智能·深度学习
workflower1 天前
深度学习是通用型人工智能的基础
人工智能·深度学习·设计模式·软件工程·软件构建·制造
卡梅德生物科技小能手1 天前
CD40LG(CD40配体)靶点深度解析:免疫调控机制与抗体药物工程化策略
经验分享·深度学习·生活