Pytorch中的 torch.distributions库详解

 更新时间:2023年02月24日 10:42:15   作者:pengjh24  
这篇文章主要介绍了Pytorch中的 torch.distributions库,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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])

到此这篇关于Pytorch中的 torch.distributions库的文章就介绍到这了,更多相关Pytorch torch.distributions库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python求两个时间的时间差(实例代码)

    python求两个时间的时间差(实例代码)

    我们在用python进行分析的时候,可能会碰到计算两个日期的时间差。下面为大家介绍一下如何计算两个时间的时间差,需要的朋友可以参考下
    2022-11-11
  • Python调用百度AI实现颜值评分功能

    Python调用百度AI实现颜值评分功能

    这篇文章主要介绍了应用百度AI的人脸识别功能对年龄、性别、颜值等进行识别,代码具有一定的学习价值,感兴趣的朋友跟随小编一起看看吧
    2021-11-11
  • Python Deque 模块使用详解

    Python Deque 模块使用详解

    Deque模块是Python标准库collections中的一项. 它提供了两端都可以操作的序列, 这意味着, 你可以在序列前后都执行添加或删除.
    2014-07-07
  • 浅谈Python中的bs4基础

    浅谈Python中的bs4基础

    今天小编就为大家分享一篇关于Python中的bs4基础,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Opencv-Python图像透视变换cv2.warpPerspective的示例

    Opencv-Python图像透视变换cv2.warpPerspective的示例

    今天小编就为大家分享一篇关于Opencv-Python图像透视变换cv2.warpPerspective的示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • 在Python中通过getattr获取对象引用的方法

    在Python中通过getattr获取对象引用的方法

    今天小编就为大家分享一篇在Python中通过getattr获取对象引用的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python基于tkinter点击按钮实现图片的切换

    python基于tkinter点击按钮实现图片的切换

    这篇文章主要介绍了python基于tkinter点击按钮实现图片的切换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 讲解Python中fileno()方法的使用

    讲解Python中fileno()方法的使用

    这篇文章主要介绍了讲解Python中fileno()方法的使用,是Python入门中的基础知识,需要的朋友可以参考下
    2015-05-05
  • 使用python实现简单五子棋游戏

    使用python实现简单五子棋游戏

    这篇文章主要为大家详细介绍了使用python实现简单五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • python图片指定区域替换img.paste函数的使用

    python图片指定区域替换img.paste函数的使用

    这篇文章主要介绍了python图片指定区域替换img.paste函数的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04

最新评论