PyTorch之torch.randn()如何创建正态分布随机数
短信预约 -IT技能 免费直播动态提醒
torch.randn()如何创建正态分布随机数
torch.randn(*size)从均值为0,方差为1的正态分布中获取随机数
【sample】
In [1]: import torch
In [2]: torch.randn(3)
Out[2]: tensor([1.7896, 0.7974, 0.7416])
In [3]: torch.randn(2,3)
Out[3]: tensor([[ 0.4030, -0.3138, -0.7579],
[-0.1486, 1.0306, 0.0734]])
In [4]: torch.randn(())
Out[4]: tensor(-0.8383) # 维度为0
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.rand(2, 3)
0.0836 0.6151 0.6958
0.6998 0.2560 0.0139
[torch.FloatTensor of size 2x3]
2. 标准正态分布
torch.randn(*sizes, out=None) → Tensor
返回一个张量,包含了从标准正态分布(均值为0,方差为1,即高斯白噪声)中抽取的一组随机数。张量的形状由参数sizes定义。
参数:
sizes (int...)
- 整数序列,定义了输出张量的形状out (Tensor, optinal)
- 结果张量
例子:
torch.randn(2, 3)
0.5419 0.1594 -0.0413
-2.7937 0.9534 0.4561
[torch.FloatTensor of size 2x3]
3.离散正态分布
torch.normal(means, std, out=None) → → Tensor
返回一个张量,包含了从指定均值means和标准差std的离散正态分布中抽取的一组随机数。
标准差std是一个张量,包含每个输出元素相关的正态分布标准差。
参数:
means (float, optional)
- 均值std (Tensor)
- 标准差out (Tensor)
- 输出张量
例子:
torch.normal(mean=0.5, std=torch.arange(1, 6))
-0.1505
-1.2949
-4.4880
-0.5697
-0.8996
[torch.FloatTensor of size 5]
4.线性间距向量
torch.linspace(start, end, steps=100, out=None) → Tensor
返回一个1维张量,包含在区间start和end上均匀间隔的step个点。
输出张量的长度由steps决定。
参数:
start (float)
- 区间的起始点end (float)
- 区间的终点steps (int)
- 在start和end间生成的样本数out (Tensor, optional)
- 结果张量
例子:
torch.linspace(3, 10, steps=5)
3.0000
4.7500
6.5000
8.2500
10.0000
[torch.FloatTensor of size 5]
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341