Advertisement

PyTorch中的交叉熵函数 CrossEntropyLoss的计算过程

阅读量:

CrossEntropyLoss函数的组成与作用

关于交叉熵函数 的表达式可参考以下链接:
交叉熵损失函数原理详解
CrossEntropyLoss() 函数的运算流程可划分为四个阶段:
1、首先对模型输出的结果执行softmax 运算,该操作能够将所有输入数值映射至[0,1]区间,并确保所有数值之和等于1,从而满足概率分布的基本特征。

2、随后对经过softmax 处理后的结果实施对数运算,得到一系列负值。

3、接着将真实标签进行one-hot 编码处理,以适配后续计算需求。

4、最终通过如下公式计算得出损失值
CrossEntropyLoss(x) = - \sum_{i=1}^{n} OneHot(target_i) * log^{softmax(input_i)}

具体而言,在一个包含N个样本的mini-batch中,假设模型 __ 在第i个样本上的输出概率向量为

从上述内容可以看出,NLLloss与log __ 和softmax的结合即构成了CrossEntropyLoss(基于softmax的交叉熵损失函数),其中NLLloss负责完成交叉熵损失函数的最后一项操作:对预测结果取负并求和。

一段代码带你上高速:

原生与PyTorch Cros

全部评论 (0)

还没有任何评论哟~