利用torch.distributions生成一些满足不同分布的随机数

深入解析 PyTorch 中的 torch.distributions模块与 Categorical分布 模块为 PyTorch 用户提供了丰富且灵活的概率分布工具,类是其中处理离散类别分布的重要成员。通过使用,我们可以方便地进行随机采样、概率计算和模型的概率化处理。这对于强化学习、生成模型、自然语言处理等需要处理离散随机变量的领域尤为重要。在实际应用中,善用模块,可以使模型更具表达力和灵活性。希望本文能帮助读者更好地理解和使用 PyTorch 中的概率分布工具,为深度学习模型的构建和研究提供有力支持。参考资料PyTorch 官方文档 - Distributions。 阅读详情

利用torch.distributions生成一些满足不同分布的随机数

# 导入工具包
import torch.distributions.log_normal as log_normal
import torch.distributions.normal as normal
import torch.distributions.uniform as uniform
import torch.distributions.bernoulli as bernoulli
import matplotlib.pyplot as plt
# 生成平均值为0.5,标准差为0.25的对数正态分布随机数
log_nor_data = log_normal.LogNormal(torch.tensor([np.log(0.5)]),0.25)
print(type(log_nor_data))

# 利用flatten()对多维数组进行降维
log_nor_data = log_nor_data.sample(sample_shape=(1000,1)).flatten() 

# 画出log_nor_data的频率分布直方图
plt.hist(log_nor_data)
plt.xlabel('log_nor_data intervel')
plt.ylabel('log_nor_data frequency')
plt.show()

在这里插入图片描述

# 生成平均值为0.5,标准差为0.25的正态分布随机数
nor_data = normal.Normal(torch.tensor([0.5]),0.25)
print(type(nor_data))

# 利用flatten()对多维数组进行降维
nor_data = nor_data.sample(sample_shape=(1000,1)).flatten() 

# 画出nor_data的频率分布直方图
plt.hist(nor_data)
plt.xlabel('nor_data intervel')
plt.ylabel('nor_data frequency')
plt.show()

在这里插入图片描述

# 生成取值区间为[0,1]的均匀分布随机数
uni_data = uniform.Uniform(0,1)
print(type(uni_data))
# 利用flatten()对多维数组进行降维
uni_data = uni_data.sample(sample_shape=(1000,1)).flatten() 

# 画出uni_data的频率分布直方图
plt.hist(uni_data)
plt.xlabel('uni_data intervel')
plt.ylabel('uni_data frequency')
plt.show()

在这里插入图片描述

# 生成一组满足伯努力分布的随机数,且满足出现1的概率为80%,出现0的概率为20%
ber_data = bernoulli.Bernoulli(0.8)
print(type(ber_data))
# 利用flatten()对多维数组进行降维
ber_data = ber_data.sample(sample_shape=(1000,1)).flatten() 

# 画出ber_data的频率分布直方图
plt.hist(ber_data)
plt.xlabel('ber_data intervel')
plt.ylabel('ber_data frequency')
plt.show()

在这里插入图片描述

torch.distributions.Categorical()的简单记录 简单介绍torch.distributions.Categorical()的部分内容 阅读详情

相关推荐

AI模型完整性验证:基于随机数指纹的黑盒模型防篡改技术

模型验证是确保AI系统可靠性的基础技术,其核心原理是通过可控的测试流程检测模型行为一致性。在深度学习领域,随机数生成机制为模型验证提供了独特的技术价值:模型前向传播过程中的随机性(如Dropout层输出)实际上由权重参数确定性地控制。这种特性使得我们可以利用随机数指纹技术,在不访问模型内部权重的情况下,通过分析模型对特定输入的随机输出来验证其完整性。该技术特别适用于生产环境监控、模型安全审计和第三方服务验证等应用场景,能够有效检测模型篡改、后门植入等安全威胁。本文详细介绍的随机数指纹方法,结合模型指纹和黑盒

weixin_33806300的博客 365

pytorch中的所有随机数(random库)(normal、rand、randn、randint、randperm) 以及 随机数种子(seed、manual_seed、initial_seed)

torch的所有随机数官方已经整理在torch — PyTorch 1.10.0 documentation这个页面了,我又重新整理到了本blog中,用中文进行了部分解释,方便理解。 一、常用的 1、torch.normal()离散正态分布 返回一个张量,包含了从指定均值mean和标准差std的离散正态分布中抽取的一组随机数。 ①第一种形式 torch.normal(mean, std, generator=None, out=None) → Tensor mean(Tensor) – ...

jiongta9473的博客 1万+

深度学习Pytorch-Tensor函数

深度学习Pytorch-Tensor函数

算法工程师 687

torch之随机数生成

Torch之随机数生成方式 torch.rand() torch.randn() torch.normal() torch.linespace() 1. 均匀分布 torch.rand(*sizes, out=None) → Tensor 返回一个张量,包含了从区间[0, 1)的均匀分布中抽取的一组随机数。张量的形状由参数sizes定义。 参数: sizes (int...) - 整数序列,定义了输出张量的形状 out (Tensor, optinal) - 结果张量 例子: torch.ra

Nicola.Zhang 2万+

生成符合幂律分布的随机噪声样本是一项非常有趣和实用的任务,因为这种类型的数据在许多领域都是常见的,如社交网络、财经和语言学等

然后我们定义了一个名为“generate_power_law_samples”的函数来生成所需数量的样本数,并将它们存储在一个double类型的vector中。我们还定义了x_min和x_max作为幂律分布的极值,以及y_min和y_max作为幂律分布的最小值和最大值。生成符合幂律分布的随机噪声样本是一项非常有趣和实用的任务,因为这种类型的数据在许多领域都是常见的,如社交网络、财经和语言学等。为了测试我们的函数,让我们生成1000个符合 /f^2 幂律分布的随机数样本,并计算它们的平均值和标准差。

ByteScript的博客 237

Coze:手把手教你搭建 小红书二创 智能体

前一篇 “” ,讲了如何针对需求进行拆解,并拆解 ”小红书二创“ 智能体,分为四个内容模块。通过上述步骤,开始一步一步构建 “小红书二创” 智能体。用来测试的小红书地址:http://xhslink.com/a/quxWEDAj3J48。

保持敏感!保持学习! 1436

pytorch 笔记:torch.distributions 概率分布相关(更新中)

1 包介绍 torch.distributions包包含可参数化的概率分布和采样函数。 这允许构建用于优化的随机计算图和随机梯度估计器。 不可能通过随机样本直接反向传播。 但是,有两种主要方法可以创建可以反向传播的代理函数。 这些是 评分函数估计量 score function estimato 似然比估计量 likelihood ratio estimator REINFORCE 路径导数估计量 pathwise derivative estimator ...

qq_40206371的博客 1万+

超详细 VMware Horizon 虚拟桌面VDI安装步骤

主要的目的是模拟生产环境中的共享存储。自动桌面相当于共享电脑,大家使用同一个虚拟机,对虚拟机的修改都放在用户的配置文件中,RDS桌面池相当于共享的服务器,可以多人同时连接到服务器上。1:之前已经建立好了NFS的存储,这部分配置好后,以后的虚拟机可以安装到NFS的存储中。2: 使用Composer发布系统可以解决SID,机器名冲突的问题,更重要的可以节约磁盘空间,发布的所有系统可以访问一块磁盘。26: 域选择我们之前建立的域,用户名我输入的是管理员,可以在AD域新建用户点击查找,我这里用的是管理员。

vv12345的博客 1万+

深入学习 torch.distributions

前几天分几篇博文精细地讲述了《von Mises-Fisher 分布》, 以及相应的 PyTorch 实现《von Mises-Fisher Distribution (代码解析)》, 其中以 Uniform 分布为例简要介绍了 torch.distributions 包的用法. 本以为已经可以了, 但这两天看到论文 The Power Spherical distribution 的代码, 又被其实现分布的方式所吸引.

撒旦先生的博客 1896

STM32CubeMX的正交编码器encoder

由于最近干活遇到需要获取正交编码的功能,所以返回来研究一下STM32CubeMX的编码器功能,之前也更新过STM32的定时器功能,但是因为之前搞平衡车的正交编码器没有搞清楚原理,就直接用了脉冲输入功能草草了事,现在也算是为之前的年轻买单了,不过看到现有的Encoder说明都比较简单,所以就当是为开发者做贡献了,我研究清楚之后来一篇博客。

ASWaterbenben的博客 1万+

【毕设】基于LoRa的物联网控制器:从原理图到PCB的完整硬件设计指南

本文提供了一份完整的基于LoRa的物联网控制器硬件设计指南,涵盖从系统框图、原理图设计到PCB布局布线的全流程。详细讲解了电源电路、单片机最小系统、信号接口以及LoRa无线模块等核心模块的设计要点与抗干扰技巧,并分享了实用的调试心得,旨在帮助电子、物联网专业学生顺利完成毕业设计,掌握低功耗远距离物联网节点的硬件开发实践。

weixin_42126677的博客 307

torch.distribution函数详解

操作方法说明定义分布dist = DistributionClass(参数)如采样生成指定形状的样本,支持批量概率计算计算x的对数PDF/PMF(数值更稳定)概率计算还原为原始PDF/PMF值分布差异计算两个分布的KL散度核心作用是PyTorch中概率建模的核心模块,支持连续/离散分布的采样、概率计算,且兼容自动微分;关键用法连续分布(Normal/Uniform):关注PDF和样本分布的连续性;离散分布(Binomial/Categorical):关注PMF和类别/次数的离散性;

DeniuHe的博客 551

[软考]系统架构设计师 备考经验分享(一) - 备考计划篇

前言 上周末刚刚结束了软考架构师的考试,自我感觉考的还可以,大概率是过了。 两次参加软考,一次中级嵌入式,一次高级架构师,都是备考不到两个月时间,尤其是架构师这次考试内容和本职工作有不小的差别,并且需要同时备考三个科目,在高强度地备考中感觉是摸索出到了一点软考的技巧与经验。 打算趁还记得,赶紧写几篇文章做下梳理总结,算是给将来自己考系分、高项或者其他考试做个记录,也希望能够帮到正在备考的大家。 先把第一步,个人的备考计划分享给大家。 自身情况分析 首先,请大家一定先明确三个问题,这三个问题会直接影响到你的

_ 6405

pytorch函数之torch.normal()

Returns a Tensor of random numbers drawn from separate normal distributions who’s mean and standard deviation are given. 这个是官网给出的解释,大意是返回一个张量,张量里面的随机数是从相互独立的正态分布中随机生成的。 根据官网中给出的实例进一步理解 torch.norm...

weixin_34203426的博客 4158

Cadence virtuos安装教程

本文详细介绍了在Ubuntu 18.04系统上安装Cadence Virtuoso IC617及MMSIM的完整流程。主要内容包括:1)系统环境准备(安装JDK及相关依赖包);2)通过创建软链接和修改系统文件实现RedHat环境兼容;3)共享目录文件操作与分卷压缩包合并解压技巧;4)使用InstallScape工具的安装步骤详解,包括权限处理和配置选项。特别提醒需注意系统兼容性处理(如创建redhat-release文件)和分卷压缩包的特殊解压方法(cat合并)。整个安装过程涉及大量Linux命令操作,需特

wangjie36的博客 300

第5课 SQL入门之高级数据过滤

如何用AND和OR操作符组合成WHERE子句;如何明确地管理求值顺序,如何使用IN和NOT操作符

warlack007的博客 867

Pytorch———(3)有关概率分布

本文主要内容为Pytorch有关概率和概率分布的部分。

reept的博客 1341

基于STM32XX的LCD液晶显示屏(HS19264G06A、驱动芯片:ST7525)驱动C程序设计

define USE_HW_SPI 1 // 1:使用硬件SPI, 0:使用软件模拟SPI。

myron6688的博客 236

PyTorch 数据分布函数介绍

在 PyTorch 中,数据分布函数用于生成满足特定概率分布的数据或对数据执行统计操作。这些函数可以在许多任务中提供帮助,例如初始化神经网络的权重、生成随机输入、进行蒙特卡洛模拟和概率建模。

qq_27390023的博客 742

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

概率分布的工程实践:PyTorch中的分布类详解与性能优化

本文深入解析PyTorch中的概率分布模块torch.distributions,涵盖从基础采样到强化学习应用的实战技巧。详细介绍了伯努利、正态、Beta等分布的实现与性能优化方法,特别强调了在强化学习中的关键作用,帮助开发者高效构建可微分的概率模型。

pink7的博客 167

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

PyTorch教程(2)概率分布

在像PyTorch这样的图形计算平台中,概率和随机变量是计算中不可分割的一部分。理解概率和相关概念是至关重要的。本章涵盖了概率分布和使用PyTorch实现,并解释了测试结果。 在概率和统计中,随机变量结果依赖于一个纯粹的随机现象。概率分布有不同的类型,包括正态分布,二项分布,多项分布,伯努利分布。每种统计分布都有自己的特性。 torch.distributions模块包含概率分布和抽样函数。在计算图中,每种分布类型都有其自身的重要性。distributions模块包含二项式,伯努利分布,贝塔分布,分类分布,

weixin_43229348的博客 5253

《动手学强化学习》中遇到的python函数的笔记

1.zip()函数 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。 我们可以使用 list() 转换来输出列表。 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符配合zip函数,可以将元组解压为列表。 >>> a = [1,2,3] >>> b = [4,5,6] >>> c = [4,5,6,7,8] >>&gt

qq_47997583的博客 606

pytorch的主要模块

1. torch模块 torch模块包含了一些pytorch的常用激活函数,如Sigmoid(torch.sigmoid)、ReLu(torch.relu)和Tanh(torch.tanh);同时也包含了pytorch张量的一些计算操作,如矩阵的乘法(torch.mm)、张量元素的选择(torch.select)。注意,该模块中计算的对象大多数是pytorch张量。 例: a = torch.randn(1,2,3,4,5) torch.numel(a) 2. torch.Tensor模块 torch.

m0_45827246的博客 2853

Pytorch的主要模块简介

模块Pytorch的主要模块

qq_42368048的博客 1612

用Categorical()实现游戏抽卡概率系统:从数学原理到PyTorch完整实现

本文详细介绍了如何利用PyTorch的torch.distributions.Categorical()模块,从数学原理出发,构建一个专业且可扩展的游戏抽卡概率系统。文章深入解析了Categorical分布的核心概念,对比了probs与logits两种参数化方式的优劣,并提供了从静态卡池、软保底机制到多阶段概率的完整代码实现,帮助开发者打造稳定、高效且符合商业需求的抽卡服务。

xray4的博客 871

动手学深度学习(pytorch)2

动手学深度学习李沐

m0_64016875的博客 508
上一篇: Python class __int__容易理解
下一篇: 使用pickle存储和读取数据
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值