Pytorch中的 torch.distributions庫(kù)詳解
Pytorch torch.distributions庫(kù)
包介紹
torch.distributions包包含可參數(shù)化的概率分布和采樣函數(shù)。 這允許構(gòu)建用于優(yōu)化的隨機(jī)計(jì)算圖和隨機(jī)梯度估計(jì)器。
不可能通過(guò)隨機(jī)樣本直接反向傳播。 但是,有兩種主要方法可以創(chuàng)建可以反向傳播的代理函數(shù)。
這些是
評(píng)分函數(shù)估計(jì)量 score function estimato
似然比估計(jì)量 likelihood ratio estimator
REINFORCE
路徑導(dǎo)數(shù)估計(jì)量 pathwise derivative estimator
REINFORCE 通常被視為強(qiáng)化學(xué)習(xí)中策略梯度方法的基礎(chǔ),
路徑導(dǎo)數(shù)估計(jì)器常見(jiàn)于變分自編碼器的重新參數(shù)化技巧中。
雖然評(píng)分函數(shù)只需要樣本 f(x)的值,但路徑導(dǎo)數(shù)需要導(dǎo)數(shù) f'(x)。
本文重點(diǎn)講解Pytorch中的 torch.distributions庫(kù)。
pytorch 的 torch.distributions 中可以定義正態(tài)分布:
import torch from torch.distributions import Normal mean=torch.Tensor([0,2]) normal=Normal(mean,1)
sample()
就是直接在定義的正太分布(均值為mean,標(biāo)準(zhǔn)差std是1)上采樣:
result = normal.sample() print("sample():",result)
輸出:
sample(): tensor([-1.3362, 3.1730])
rsample()
不是在定義的正太分布上采樣,而是先對(duì)標(biāo)準(zhǔn)正太分布 N(0,1) 進(jìn)行采樣,然后輸出: mean + std × 采樣值
result = normal.rsample() print("rsample():",result)
輸出:
rsample: tensor([ 0.0530, 2.8396])
log_prob(value)
是計(jì)算value在定義的正態(tài)分布(mean,1)中對(duì)應(yīng)的概率的對(duì)數(shù),正太分布概率密度函數(shù)是:
對(duì)其取對(duì)數(shù)可得:
這里我們通過(guò)對(duì)數(shù)概率還原其對(duì)應(yīng)的真實(shí)概率:
print("result log_prob:",normal.log_prob(result).exp())
輸出:
result log_prob: tensor([ 0.1634, 0.2005])
到此這篇關(guān)于Pytorch中的 torch.distributions庫(kù)的文章就介紹到這了,更多相關(guān)Pytorch torch.distributions庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python求兩個(gè)時(shí)間的時(shí)間差(實(shí)例代碼)
我們?cè)谟胮ython進(jìn)行分析的時(shí)候,可能會(huì)碰到計(jì)算兩個(gè)日期的時(shí)間差。下面為大家介紹一下如何計(jì)算兩個(gè)時(shí)間的時(shí)間差,需要的朋友可以參考下2022-11-11Python調(diào)用百度AI實(shí)現(xiàn)顏值評(píng)分功能
這篇文章主要介紹了應(yīng)用百度AI的人臉識(shí)別功能對(duì)年齡、性別、顏值等進(jìn)行識(shí)別,代碼具有一定的學(xué)習(xí)價(jià)值,感興趣的朋友跟隨小編一起看看吧2021-11-11Opencv-Python圖像透視變換cv2.warpPerspective的示例
今天小編就為大家分享一篇關(guān)于Opencv-Python圖像透視變換cv2.warpPerspective的示例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04在Python中通過(guò)getattr獲取對(duì)象引用的方法
今天小編就為大家分享一篇在Python中通過(guò)getattr獲取對(duì)象引用的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01python基于tkinter點(diǎn)擊按鈕實(shí)現(xiàn)圖片的切換
這篇文章主要介紹了python基于tkinter點(diǎn)擊按鈕實(shí)現(xiàn)圖片的切換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04使用python實(shí)現(xiàn)簡(jiǎn)單五子棋游戲
這篇文章主要為大家詳細(xì)介紹了使用python實(shí)現(xiàn)簡(jiǎn)單五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06python圖片指定區(qū)域替換img.paste函數(shù)的使用
這篇文章主要介紹了python圖片指定區(qū)域替換img.paste函數(shù)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04