计算机视觉之图像分类模型调整

我在超算运行了我的项目。持续更新经验。先从调参开始学习。

参数调整

任务号学习率及其策略batch_size每N轮训练进行一次测试最高的准确率
学习率刚开始1e-5,开始50轮学习率不变,后面每30轮学习率变为原来的十分之一325第70轮0.9003。不知道学习率
学习率刚开始0.1,开始50轮学习率不变,后面每50轮学习率变为原来的十分之一128100.62,准确率甚至有0.01的
学习率刚开始1e-5,开始100轮学习率不变,后面每50轮学习率变为原来的十分之一1285第200轮0.92,但是发现第95轮时,模型都是连续保存的。所以试一试刚开始150轮不变学习率。不知道学习率。
67748学习率刚开始1e-5,开始150轮学习率不变,后面每50轮学习率变为原来的十分之一128从第70轮后开始,每5轮保存一次模型

第185轮准确率0.9021956087824351

学习率2.7450980392156867e-06

前100轮模型连续保存准确度达到0.87。所以打算用1e-6训练100轮。

67751学习率刚开始1e-6,开始50轮学习率不变,后面每50轮学习率变为原来的十分之一1285前25轮一直在增长,后面到第95轮测试集上的正确率:0.7405189620758483
第95轮目前的预测精度 0.7405189620758483并保存了模型(也就是最大精度)
学习率7.843137254901966e-08
67752学习率刚开始1e-6,开始50轮学习率不变,后面每50轮学习率变为原来的十分之一645前25轮一直在增长,后面第90轮整体测试集上的Loss:266.89525921596214
第90轮测试集上的正确率:0.7345309381237525
第90轮目前的预测精度 0.7345309381237525并保存了模型
1.7647058823529414e-07.为什么1e-5效果好,学习率低反而不行了。
67758
 
学习率刚开始1e-5,开始100轮学习率不变,后面每50轮学习率变为原来的十分之一,最后50轮衰减学习率1285看之前0.92的精确度学习率是多少。
67758
 
学习率刚开始1e-5,开始100轮学习率不变,后面每50轮学习率变为原来的十分之一,最后50轮衰减学习率645200轮跑了10.5H,前15轮连续保存了模型,第200轮目前的预测精度 0.9321357285429142并保存了模型
-9.900990099009911e-08,其实第130轮目前的预测精度 0.9321357285429142并保存了模型
6.831683168316832e-06。所以每隔50轮学习率变为原来的十分之一的功能没有凑效。第95轮目前的预测精度 0.9181636726546906并保存了模型
1e-05。所以改为150轮不变,100轮下降看怎么样。或者100轮不变,150轮下降。
67759
 
学习率刚开始1e-5,开始100轮学习率不变,后面每50轮学习率变为原来的十分之一,最后50轮衰减学习率1285看之前0.92的精确度学习率是多少。怎么不稳定,第100轮测试集上的正确率:0.8782435129740519
第100轮目前的预测精度 0.8782435129740519并保存了模型
1e-05。后面到150轮了学习率就直接衰减,这个每50轮变为原来的0.1倍的学习率没啥用。第245轮目前的预测精度 0.9001996007984032并保存了模型
3.9603960396039643e-07
67760
 
学习率刚开始1e-5,开始150轮学习率不变,后面每50轮学习率变为原来的十分之一,最后50轮衰减学习率1285第100轮测试集上的正确率:0.9101796407185628
第100轮目前的预测精度 0.9101796407185628并保存了模型
1e-05。这说明1e-5训练100轮就没效果了。后面的150轮精确度最低是0.89。
67765学习率刚开始1e-5,开始100轮学习率不变,最后150轮衰减学习率1285

第95轮目前的预测精度 0.8902195608782435并保存了模型
1e-05

第195轮测试集上的正确率:0.9041916167664671
第195轮目前的预测精度 0.9041916167664671并保存了模型
3.576158940397352e-06。

总结:

1、学习率策略没有被使用

2、学习率从1e-5开始训练效果好

3、检查学习率策略,更改模型后再次测试。后续更新

4、检查模型训练和测试的逻辑

5、读论文,更改模型

6、模型不稳定

这是上述表格的数据截图。

这是因为我想模型保存的少一些。

我想每个节点是2个gpu,所以。我需要用下面的#SBATCH --gpus-per-task=2。这样会不会快一些,之前用了8H跑模型。

#!/bin/bash
#SBATCH -o job.%j.out
#SBATCH --partition=gpu_128G
#SBATCH -J gputrai
#SBATCH --nodes=1            
#SBATCH --ntasks-per-node=1   
#SBATCH --error=job.%j.error 
#SBATCH --gpus-per-task=2  
CONDA_ENV=skin1

#conda activate ${CONDA_ENV}

cd /home/lxtai/anaconda3/envs/skin1/Learn_NewSkinClass20240312/

python train.py

尽管无法使用#SBATCH --gpus-per-task=2,但是任务已经提交上去了。等待吧

之前print学习率都报错了。print(lr)。修正如下。提交任务67748

print(optimizer.param_groups[0]['lr'])

等待结果

67748,在150轮以后,学习率变化成9.803921568627451e-06,因为我设置的50轮变化一次学习率,最后50轮学习率会逐步衰减至0。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值