浅谈“水下鱼类物种识别”比赛经验
图像分类
最后更新 2020-04-03 16:12 阅读 11570
最后更新 2020-04-03 16:12
阅读 11570
图像分类
首先声明,我是一个人工智能新手,不是大神,所以得分不会特别高,在此也只是想结识更多学习人工智能的朋友,一起探讨学习下.
1. 首先对于数据观察,训练样本分类数量极度不平衡,尝试过很多平衡样本的方法,但是对于提升最终得分好像没有效果,(我猜测可能是最终的测试样本也是不平衡的的)
2.最重要的是模型的选择,我使用的是pytorch官方实现的一个resnet50,使用了官方的预训练模型(flyai也提供了相关下载连接,下载模型更快)https://www.flyai.com/models然后把最后一个全连接修改成对应的分类数量
fc_inputs = model.fc.in_features
model.fc = nn.Sequential(
nn.Linear(fc_inputs, 256),
nn.ReLU(),
nn.Dropout(0.5),
nn.Linear(256, 21))
3.学习率,这个我认为是所有超参数中最重要的,我曾经做一个项目,模型一摸一样,就是学习率选错了,别人的得分就有八十多,我就只有零点几,我建议选择0.001,并用余弦退火衰减学习率,torch里面有相关函数,直接调用就好.
# 采用SGDOptimizer为网络优化器,定义如下:
optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9, weight_decay=2e-4)
scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=40, eta_min=1e-7, last_epoch=-1)
基本上我最主要做的就是以上步骤,得分最后到达了99分以上,但是最后零点几分,用了很多方法怎么也上不去了,在此也希望大家可以多探讨,多交流.
赞
讨论
500字
表情
删除确认
是否删除该条评论?
取消
删除