pytorch nn.KLDivLoss()损失计算

参考:https://blog.csdn.net/L888666Q/article/details/126346022?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-126346022-blog-128974654.235^v38^pc_relevant_default_base&spm=1001.2101.3001.4242.2&utm_relevant_index=4

      预测值和标签值都需要进行softmax归一化处理  预测值还需要再进行log计算,标签值不需要

  • KL散度     KL散度,又叫相对熵,用于衡量两个分布(离散分布和连续分布)之间的距离。

          设 p(x) 、 q(x) 是离散随机变量X的两个概率分布,则 p 对q 的KL散度是:

  • 在pytorch中,nn.KLDivLoss()的计算公式如下:

           上图y为标签,x为预测值,则pytorch应该以如下代码使用 :(1)、 lossfunc=nn.KLDivLoss()  (2)、loss = lossfunc(预测值, 标签值)

           所以,在pytorch中预测值和标签值分别做如下处理:(1)、 F.log_softmax(预测值/ temp, dim=1)   (2)、F.softmax(标签值/ temp, dim=1)

           

  

 

 

 

 
登录状态已过期 (若您已重新登录,请刷新当前页面; 若您要同时登录两个设备, 请在登录时选择不同的设备)
posted @ 2023-10-11 10:14  19l92y11p26  阅读(315)  评论(0编辑  收藏  举报
/*鼠标跟随效果*/ /* 点击爆炸效果*/
/*鼠标跟随效果*/
Live2D