日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Pytorch中的?torch.distributions庫詳解_python

作者:pengjh24 ? 更新時間: 2023-06-16 編程語言

Pytorch torch.distributions庫

包介紹

torch.distributions包包含可參數化的概率分布和采樣函數。 這允許構建用于優化的隨機計算圖和隨機梯度估計器。

不可能通過隨機樣本直接反向傳播。 但是,有兩種主要方法可以創建可以反向傳播的代理函數。

這些是

評分函數估計量 score function estimato
似然比估計量 likelihood ratio estimator
REINFORCE
路徑導數估計量 pathwise derivative estimator
REINFORCE 通常被視為強化學習中策略梯度方法的基礎,

路徑導數估計器常見于變分自編碼器的重新參數化技巧中。

雖然評分函數只需要樣本 f(x)的值,但路徑導數需要導數 f'(x)。

本文重點講解Pytorch中的 torch.distributions庫。

pytorch 的 torch.distributions 中可以定義正態分布:

import torch
from torch.distributions import  Normal
mean=torch.Tensor([0,2])
normal=Normal(mean,1)

sample()就是直接在定義的正太分布(均值為mean,標準差std是1)上采樣:

result = normal.sample()
print("sample():",result)

輸出:

sample(): tensor([-1.3362, ?3.1730])

rsample()不是在定義的正太分布上采樣,而是先對標準正太分布 N(0,1) 進行采樣,然后輸出: mean + std × 采樣值

result = normal.rsample()
print("rsample():",result)

輸出:

rsample: tensor([ 0.0530, ?2.8396])

log_prob(value) 是計算value在定義的正態分布(mean,1)中對應的概率的對數,正太分布概率密度函數是:

在這里插入圖片描述

對其取對數可得:

在這里插入圖片描述

這里我們通過對數概率還原其對應的真實概率:

print("result log_prob:",normal.log_prob(result).exp())

輸出:

result log_prob: tensor([ 0.1634, ?0.2005])

原文鏈接:https://blog.csdn.net/qq_38789531/article/details/104950940

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新