CT影像诊断新冠肺炎
最后更新 2020/06/15 14:34
阅读 800
PyTorch EfficientNet
yunshao555
9
获得赞0
发布的文章3
答辩的项目Batch大小为16,循环次数为30次,通过在线上环境完成训练,模型最优精度评分为94.12。
最后更新 2020/06/15 14:34
阅读 800
PyTorch EfficientNet
数据处理
1、通过线下观察数据,发现图像尺寸普遍在400以上,所以考虑使用的模型图像尺寸输入大小为448
2、使用AutoML中的RandAugment作为图像数据增强
模型选择
1、因为图像尺寸较大,所以考虑使用efficientnet系列作为baseline模型框架我使用的是efficientnet-b2模型作为baseline
训练技巧
1、使用标签平滑损失,用来防止过拟合
class LabelSmoothingCrossEntropy(nn.Module):
def __init__(self, epsilon: float = 0.1, reduction='mean'):
super().__init__()
self.epsilon, self.reduction = epsilon, reduction
def forward(self, output, target):
c = output.size()[-1]
log_preds = F.log_softmax(output, dim=-1)
loss = reduce_loss(-log_preds.sum(dim=-1), self.reduction)
nll = F.nll_loss(log_preds, target, reduction=self.reduction)
return lin_comb(loss / c, nll, self.epsilon)
2、使用带动量的SGD优化函数
optim.SGD(model.parameters(), lr=lr, momentum=0.9, weight_decay=1e-4, nesterov=True)3、使用ReduceLROnPlateau作为学习率调整技巧
lr_scheduler.ReduceLROnPlateau(optimizer, mode='max', factor=0.3, patience=3, verbose=True)
总结
本次比赛的数据集数量相对较少,训练过程也比较快,可以考虑多尝试目前新出模型进行训练,像ResneSt和Res2Net这些也可以考虑尝试一下,也可以考虑各种技巧的组合进行训练,并且可以多看看人家的总结,比如很多人有提到训练时使用adam作为优化器,使用多阶段训练,还可以考虑使用多模型融合等,总之,得自己多主动学习。Thanks...
PyTorch EfficientNet
请先绑定您的微信账号 点击立即绑定
敬请谅解,如有疑问请联系FlyAI客服