news 2026/4/23 8:53:13

25.12.18_第P5周:运动鞋识别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
25.12.18_第P5周:运动鞋识别

🍨 本文为🔗365天深度学习训练营中的学习记录博客

  • 🍖 原作者:K同学啊

一、我的环境

二、动态学习率

这个地方使用的是官方的动态学习率接口,最开始源代码中0.92 ** (epoch // 2),在多轮实验中,后期的模型都训练不动,loss不降我采用了Adam、标签平滑、正则化,都没有讲test_acc提升到84%。掉回头来修改衰减梯度,在最后两轮达到了最终目标,修改代码是0.95*epoch,减缓了衰减速度,让模型更容易收敛。我也不懂为啥就实现了目标,我问ai,ai建议如下。最近建议我尝试余弦退火策略,因为我的acc曲线最终还是掉了一些下去,

为什么“平滑”能提高准确率?

你可以看看这两个对比图(想象):

  1. 配合动量(Momentum)

    • 现在的优化器(如 Adam)都有“惯性”。

    • 旧方案的突变会打断惯性,导致模型在那个瞬间方向迷失。

    • 新方案顺应惯性,让模型在减速的同时依然保持方向感,更容易滑入“全局最优解”(Global Minima)。

  2. 更早的干预

    • 旧方案前 2 轮学习率完全没变。如果初始学习率这就有点大,前 2 轮可能已经跑偏了。

    • 新方案从第 1 轮就开始减速(乘以 0.95)。这种“尽早介入、温柔介入”的策略,能防止模型在训练初期因为步子太大而跳出最优解的坑。

三 代码

# # 调用官方动态学习率接口时使用 learn_rate = 1e-4 lambda1 = lambda epoch: (0.95 ** epoch) optimizer = torch.optim.SGD(model.parameters(), lr=learn_rate) scheduler = torch.optim.lr_scheduler.LambdaLR(optimizer, lr_lambda=lambda1) #选定调整方法
loss_fn = nn.CrossEntropyLoss() # 创建损失函数 epochs = 40 train_loss = [] train_acc = [] test_loss = [] test_acc = [] for epoch in range(epochs): # 更新学习率(使用自定义学习率时使用) model.train() epoch_train_acc, epoch_train_loss = train(train_dl, model, loss_fn, optimizer) # scheduler.step() # 更新学习率(调用官方动态学习率接口时使用) model.eval() epoch_test_acc, epoch_test_loss = test(test_dl, model, loss_fn) scheduler.step() train_acc.append(epoch_train_acc) train_loss.append(epoch_train_loss) test_acc.append(epoch_test_acc) test_loss.append(epoch_test_loss) # 获取当前的学习率 lr = optimizer.state_dict()['param_groups'][0]['lr'] template = ('Epoch:{:2d}, Train_acc:{:.1f}%, Train_loss:{:.3f}, Test_acc:{:.1f}%, Test_loss:{:.3f}, Lr:{:.2E}') print(template.format(epoch+1, epoch_train_acc*100, epoch_train_loss, epoch_test_acc*100, epoch_test_loss, lr)) print('Done')
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 13:18:12

Pod 资源限制与调度优化:提升集群性能的关键

Pod 资源限制与调度优化:提升集群性能的关键 关键词:Pod、资源限制、调度优化、集群性能、Kubernetes 摘要:本文围绕 Pod 资源限制与调度优化展开,深入探讨了其对于提升集群性能的重要性。首先介绍了相关背景知识,包括目的范围、预期读者等。接着详细阐述了 Pod 资源限制和…

作者头像 李华
网站建设 2026/4/23 14:40:44

45、Bash脚本常见问题及解决方法

Bash脚本常见问题及解决方法 1. 管道创建子shell问题 在编写Bash脚本时,有时会遇到变量值异常的情况,例如 $COUNT 始终为零。这是因为管道会创建子shell,而 while 循环在子shell中运行,其内部对变量的更改不会影响脚本外部的变量。 解决方案 避免使用管道 :可以使…

作者头像 李华
网站建设 2026/4/23 15:38:36

测试文档全生命周期管理实践指南

1 测试文档的价值定位与分类体系 在现代软件质量保障体系中,测试文档已从附属产出转变为核心资产。根据IEEE 829标准和ISTQB知识体系,完整的测试文档生态涵盖测试计划类、设计规范类、执行记录类和总结报告类四大维度。 1.1 测试计划阶段文档 测试策略…

作者头像 李华
网站建设 2026/4/23 14:17:12

20、Samba 高级配置与使用指南

Samba 高级配置与使用指南 1. Magic Scripts Magic Scripts 是在 Samba 服务器上运行 Unix 程序并将输出重定向回 SMB 客户端的一种方法。不过,这本质上是一种实验性的技巧,Samba 团队并不推荐广泛使用,但仍有部分用户和程序依赖这些选项来正常运行。 Option Parameters…

作者头像 李华