python交叉熵损失函数实现,交叉熵 pytorch
Mse_loss()和交叉熵损失()1.均方差损失函数mse_loss()MSE损失函数是预测数据和原始数据对应点误差平方和的平均值。
\ [MSE=\ frac {1} {n} (y`y) 2 \] n是样本数,y 是预测值,y是正确值。
代码示例:
导入torchimport torch . nn . functional as Fif _ _ name _ _= _ _ main _ _ :Data=torch . tensor([1.0,3.0])loss=f . MSE _ loss(torch . tensor([1.0,1.0]),Data)print(loss)#[(1-1)2(3-1)2]/2=2 Data 1=torch . tensor([2.0,3.0])loss=f . MSE _ loss(torch . tensor([1.0,1.0
张量(2。)张量(2.5000)2.交叉熵损失函数cross_entropy():相比mse_loss()梯度更大了,优化更快了首先介绍熵的概念。熵是衡量一个分布是否稳定的概念。衡量一个分布的信息熵的计算公式如下:log默认以2为基数。
\[entropy(p)=-\ sum _ { I=1 } { n } p(I)log p(I)\]测量分布信息熵的实例化代码如下:
导入火炬if _ _ name _ _= _ _ main _ _: #交叉熵一般用于分类问题。如果下面四个数据代表四类比例,#四类比例都一样,这里熵很高,不好判断。Data=torch.tensor ([0.25,0.25,0.25,0.25]) #输出熵print(数据的熵为,-(dat a * torch.log2 (data))。sum ()) #熵越高越难确定#第四类比重为0.97,1=torch.tensor ([0.01,0.01,0.01,0.97]) #输出熵print( data1的熵为,-(data1 * torch.log2 (data1))。sum ()) #熵越低,越容易确定输出结果。
数据的熵是张量(2。)而data1的熵是张量(0.2419)。测量两个分布的交叉熵的计算公式如下:
\[熵(p,q)=-\ sum _ {i=1} {n} p(i) log q(i)=熵(p) d _ {kl} (pq) \]交叉熵(p,q)=信息熵(p)相对
交叉熵损失函数经常出现在分类问题中。因为分类问题需要计算每一类的概率,所以交叉熵损失函数经常与sigmoid()和softmax()激活函数一起使用。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。