Pytorch中的 torch.distributions庫(kù)詳解
Pytorch torch.distributions庫(kù)
包介紹
torch.distributions包包含可參數(shù)化的概率分布和采樣函數(shù)。 這允許構(gòu)建用于優(yōu)化的隨機(jī)計(jì)算圖和隨機(jī)梯度估計(jì)器。
不可能通過隨機(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ì)器常見于變分自編碼器的重新參數(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ù)可得:

這里我們通過對(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中如何寫控制臺(tái)進(jìn)度條的整理
這篇文章主要介紹了詳解Python中如何寫控制臺(tái)進(jìn)度條的整理,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03
python數(shù)據(jù)分析數(shù)據(jù)標(biāo)準(zhǔn)化及離散化詳解
這篇文章主要為大家詳細(xì)介紹了python數(shù)據(jù)分析數(shù)據(jù)標(biāo)準(zhǔn)化及離散化,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02
Python線程池thread?pool創(chuàng)建使用及實(shí)例代碼分享
這篇文章主要介紹了Python線程池(thread?pool)創(chuàng)建使用及實(shí)例代碼分享,文章圍繞主題展開詳細(xì)的內(nèi)容介紹具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06
Python設(shè)計(jì)模式之中介模式簡(jiǎn)單示例
這篇文章主要介紹了Python設(shè)計(jì)模式之中介模式,簡(jiǎn)單介紹了中介模式的概念、功能,并結(jié)合實(shí)例形式給出了Python定義與使用中介模式的相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
一篇文章教你用Python繪畫一個(gè)太陽(yáng)系
這篇文章主要給大家介紹了關(guān)于如何利用Python繪畫一個(gè)太陽(yáng)系,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-10-10

