五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

解決pytorch中的kl divergence計(jì)算問題

發(fā)布日期:2022-04-14 16:17 | 文章來源:gibhub

偶然從pytorch討論論壇中看到的一個問題,KL divergence different results from tf,kl divergence 在TensorFlow中和pytorch中計(jì)算結(jié)果不同,平時沒有注意到,記錄下

一篇關(guān)于KL散度、JS散度以及交叉熵對比的文章

kl divergence 介紹

KL散度( Kullback–Leibler divergence),又稱相對熵,是描述兩個概率分布 P 和 Q 差異的一種方法。計(jì)算公式:

可以發(fā)現(xiàn),P 和 Q 中元素的個數(shù)不用相等,只需要兩個分布中的離散元素一致。

舉個簡單例子:

兩個離散分布分布分別為 P 和 Q

P 的分布為:{1,1,2,2,3}

Q 的分布為:{1,1,1,1,1,2,3,3,3,3}

我們發(fā)現(xiàn),雖然兩個分布中元素個數(shù)不相同,P 的元素個數(shù)為 5,Q 的元素個數(shù)為 10。但里面的元素都有 “1”,“2”,“3” 這三個元素。

當(dāng) x = 1時,在 P 分布中,“1” 這個元素的個數(shù)為 2,故 P(x = 1) = 2/5 = 0.4,在 Q 分布中,“1” 這個元素的個數(shù)為 5,故 Q(x = 1) = 5/10 = 0.5

同理,

當(dāng) x = 2 時,P(x = 2) = 2/5 = 0.4 ,Q(x = 2) = 1/10 = 0.1

當(dāng) x = 3 時,P(x = 3) = 1/5 = 0.2 ,Q(x = 3) = 4/10 = 0.4

把上述概率帶入公式:

至此,就計(jì)算完成了兩個離散變量分布的KL散度。

pytorch 中的 kl_div 函數(shù)

pytorch中有用于計(jì)算kl散度的函數(shù) kl_div

torch.nn.functional.kl_div(input, target, size_average=None, reduce=None, reduction='mean')

計(jì)算 D (p||q)

1、不用這個函數(shù)的計(jì)算結(jié)果為:

與手算結(jié)果相同

2、使用函數(shù):

(這是計(jì)算正確的,結(jié)果有差異是因?yàn)閜ytorch這個函數(shù)中默認(rèn)的是以e為底)

注意:

1、函數(shù)中的 p q 位置相反(也就是想要計(jì)算D(p||q),要寫成kl_div(q.log(),p)的形式),而且q要先取 log

2、reduction 是選擇對各部分結(jié)果做什么操作,默認(rèn)為取平均數(shù),這里選擇求和

好別扭的用法,不知道為啥官方把它設(shè)計(jì)成這樣

補(bǔ)充:pytorch 的KL divergence的實(shí)現(xiàn)

看代碼吧~

import torch.nn.functional as F
# p_logit: [batch, class_num]
# q_logit: [batch, class_num]
def kl_categorical(p_logit, q_logit):
 p = F.softmax(p_logit, dim=-1)
 _kl = torch.sum(p * (F.log_softmax(p_logit, dim=-1)
- F.log_softmax(q_logit, dim=-1)), 1)
 return torch.mean(_kl)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持本站。

香港穩(wěn)定服務(wù)器

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時開通

自選配置、實(shí)時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部