手写交叉熵Cross Entropy Loss Function,针对分割任务,2D-Tensor
最近准备在cross entropy的基础上自定义loss function, 但是看pytorch的源码Python部分没有写loss function的实现,看实现过程还得去翻它的c代码,比较复杂。写这个帖子的另一个原因是,网络上大多数Cross Entropy Loss 的实现是针对于一维信号,或者是分类任务的,没找到关于分割任务的。因此,准备手写一个Cross Entropy Loss Function,也供大家参考。
先介绍两种Pytorch的Cross Entropy loss function的写法
一. Pytorch 比较常用的CrossEntropyLoss
import torch
ce_loss = torch.nn.CrossEntropyLoss(ignore_index=255, reduction='mean', size_average = True)
cross_entropy1 = ce_loss(yHat, y)
yHat 就是模型的输出,y就是了label。
二. 使用Pytorch里面的