在Pytorch中交叉熵损失函数
上图中x代表的是模型的output,即预测输出序列, class代表的是指label中真实的类别,loss(x, class)代表模型输出x的损失loss值
不同BatchSize举例说明
# 这是一个二分类问题, batchsize = 1
model-output: [-0.3345, -1.0987]
label-target: [0]
loss: -(-0.3345) + log(exp(-0.3345) + exp(-1.0987)) = 0.3823 # log()以e为底数
#这是一个二分类问题, batchsize = 2
model-output: [[-0.3151, 0.3745],[1.1754, 0.8952]]
label-target: [0, 1]
loss1: -(-0.3151) + log(exp(-0.3151) + exp(0.3745)) = 1.0962
loss2: -(0.8952) + log((exp(1.1754) + exp(0.8952))) = 0.8430
loss: (loss1 + loss2) / 2 = (1.0962 + 0.8430) / 2 = 0.9696