多分类问题,Pytorch训练中,目标值是标签,网络的输出是向量,torch是如何处理的?

在学习Pytorch 中,模仿了官方文档的一次对图像的十分类训练。

我用的是Pytorch自带的手写数字的数据集。

那么在官方文档中,损失是直接用预测值和目标值计算的。

可是神经网络的输出是长度为10的向量,意思是哪一个值最大,认为预测的是这个值。比如(1,2,3,4,100,3,22,4,2,1),则预测的是数字5。

而目标值只是一个数字,比如3,4,5。这两个是如何进行损失值计算的呢?

回答

在多分类任务中,经常采用 softmax 激活函数+交叉熵损失函数,因为交叉熵描述了两个概率分布的差异,然而神经网络输出的是向量,并不是概率分布的形式。所以需要 softmax激活函数将一个向量进行“归一化”成概率分布的形式,再采用交叉熵损失函数计算 loss。

以上是多分类问题,Pytorch训练中,目标值是标签,网络的输出是向量,torch是如何处理的?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>