各种损失损失函数的使用场景和使用方法:KL散度
生活随笔
收集整理的這篇文章主要介紹了
各种损失损失函数的使用场景和使用方法:KL散度
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
KL 散度的使用場景
KL散度( Kullback–Leibler divergence),又稱相對熵,是描述兩個概率分布 P 和 Q 差異的一種方法
第一個參數傳入的是一個對數概率矩陣,第二個參數傳入的是概率矩陣。并且因為kl散度具有不對稱性,存在一個指導和被指導的關系,因此這連個矩陣輸入的順序需要確定一下。如果現在想用Y指導X,第一個參數要傳X,第二個要傳Y。就是被指導的放在前面,然后求相應的概率和對數概率就可以了。
所以,一隨機初始化一個tensor為例,對于第一個輸入,我們需要先對這個tensor進行softmax(確保各維度和為1),然后再取log;對于第二個輸入,我們需要對這個tensor進行softmax。
import torch import torch.nn.functional as Fa = torch.tensor([[0,0,1.1,2,0,10,0],[0,0,1,2,0,10,0]]) log_a =F.log_softmax(a)b = torch.tensor([[0,0,1.1,2,0,7,0],[0,0,1,2,0,10,0]]) softmax_b =F.softmax(b,dim=-1)kl_mean = F.kl_div(log_a, softmax_b, reduction='mean') print(kl_mean)總結
以上是生活随笔為你收集整理的各种损失损失函数的使用场景和使用方法:KL散度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: exe打包工具哪个最好_一键分发工具哪个
- 下一篇: html如何设置鼠标选中状态,怎么用CS