在配置文件中我们也可以修改配置为自己想要的结果
修改neck
自己重写一个损失函数
import torch
import torch.nn as nn
from ..builder import LOSSES
from .utils import weighted_loss
@weighted_loss
def l1_loss(pred, target):
target = nn.functional.one_hot(target,num_classes=102)
assert pred.size() == target.size() and target.numel() > 0
loss = torch.abs(pred - target)
return loss
@LOSSES.register_module()
class L1Loss(nn.Module):
def __init__(self, reduction='mean', loss_weight=1.0):
super(L1Loss, self).__init__()
self.reduction = reduction
self.loss_weight = loss_weight
def forward(self,
pred,
target,
weight=None,
avg_factor=None,
reduction_override=None):
assert reduction_override in (None, 'none', 'mean', 'sum')
reduction = (
reduction_override if reduction_override else self.reduction)
loss = self.loss_weight * l1_loss(
pred, target, weight, reduction=reduction, avg_factor=avg_factor)
return loss
最后还需要在_init_.py文件中导入我们的损失函数
再回我们的配置文件中改成我们自己写的损失函数
继续添加数据增强模块,先找到transforms,里面有很多数据增强的类和函数,找到自己想用的,拿去在自己的配置文件中加上就行
这里选择再加上ColorJitter的数据增强,可以根据他的参数介绍去我们自己的配置文件中改
然后在配置文件的训练集中加入,亮度、对比度、饱和度先都设置成0.5同理再加入mixup数据增强
加载预训练模型
在模型配置中加载预训练模型,这个模型可以去GitHub下载 可视化
参数去相应的文件中查看做了哪些变化都可以看到