交叉熵损失函数
torch.nn.CrossEntropyLoss(weight=None, size_average=None, ignore_index=-
100, reduce=None, reduction='elementwise_mean')
weight为每个类别的loss设置权重,常用于类别不均衡的问题,weight的数据类型必须是float的tensor,其个数要与分类的类别个数一致(其他参数不介绍)
weight的计算方法经常使用median frequency balancing,假设有五个类别的分类。那么每个类别都要计算一个频率,以第一类别为例,其计算公式为
上面式子中的a表示第一个类别的像素个数,b代表所有包含第一类的照片中的像素个数
(例如100张图片中有80张包含第一类,那么a就是这80张里面属于第一个类别的像素总数,b就是80张图片的像素总数)
按照上面的说法五个类别可以计算出五个数字,然后排成一列,找到这5个数字的中值median_freq,然后使用这个中值依次除以上述五个数,得到的新的五个数字就是五个权重。