当前位置:   article > 正文

pytorch与numpy生成随机数比较_torch.random.normal

torch.random.normal

pytorch

torch.rand()           均匀分布

torch.randn()         标准正态分布

torch.normal()       离散正态分布

torch.linespace()   线性间距向量

1、torch.rand(*sizes, out=None) → Tensor

均匀分布

返回一个张量,包含了从区间[0, 1)的均匀分布中抽取的一组随机数。张量的形状由参数sizes定义。

参数:

  • sizes (int…) - 整数序列,定义了输出张量的形状
  • out (Tensor, optinal) - 结果张量

例子:

  1. torch.rand(2, 3)
  2. 0.0836 0.6151 0.6958
  3. 0.6998 0.2560 0.0139
  4. [torch.FloatTensor of size 2x3]

 

2、torch.randn(*sizes, out=None) → Tensor

标准正态分布

返回一个张量,包含了从标准正态分布(均值为0,方差为1,即高斯白噪声)中抽取的一组随机数。张量的形状由参数sizes定义。

参数:

  • sizes (int…) - 整数序列,定义了输出张量的形状
  • out (Tensor, optinal) - 结果张量

例子:

  1. torch.randn(2, 3)
  2. 0.5419 0.1594 -0.0413
  3. -2.7937 0.9534 0.4561
  4. [torch.FloatTensor of size 2x3]

3、torch.normal(means, std, out=None) → → Tensor

离散正态分布

返回一个张量,包含了从指定均值means和标准差std的离散正态分布中抽取的一组随机数。

标准差std是一个张量,包含每个输出元素相关的正态分布标准差。

参数:

  • means (float, optional) - 均值
  • std (Tensor) - 标准差
  • out (Tensor) - 输出张量

例子:

  1. torch.normal(mean=0.5, std=torch.arange(1, 6))
  2. -0.1505
  3. -1.2949
  4. -4.4880
  5. -0.5697
  6. -0.8996
  7. [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) - 结果张量

例子:

  1. torch.linspace(3, 10, steps=5)
  2. 3.0000
  3. 4.7500
  4. 6.5000
  5. 8.2500
  6. 10.0000
  7. [torch.FloatTensor of size 5]

 


numpy

numpy中用来产生随机数的模块为random模块

numpy.random.rand(d0, d1, ..., dn)

产生一个给定形状的数组,数组中的值服从[0, 1)之间的均匀分布                                         

numpy.random.uniform(low=0.0, high=1.0, size=None)

返回一个在区间[low, high)中均匀分布的数组,size指定形状。

numpy.random.randn(d0, d1, ..., dn)

返回一个指定形状的数组,数组中的值服从标准正态分布(均值为0,方差为1)。                                         

numpy.random.normal(loc=0.0, scale=1.0, size=None)

返回一个由size指定形状的数组,数组中的值服从 μ=loc,σ=scaleμ=loc,σ=scale 的正态分布。           

numpy.random.randint(low, high=None, size=None, dtype='l') 

返回一个在区间[low, high)中离散均匀抽样的数组,size指定形状,dtype指定数据类型。

numpy.random.random(size=None)

返回从[0, 1)之间均匀抽样的数组,size指定形状。 

1、numpy.random.rand(d0, d1, ..., dn)

作用:产生一个给定形状的数组(其实应该是ndarray对象或者是一个单值),数组中的值服从[0, 1)之间的均匀分布
参数:d0, d, ..., dn : int,可选。如果没有参数则返回一个float型的随机数,该随机数服从[0, 1)之间的均匀分布。
返回值:ndarray对象或者一个float型的值
例子

  1. # [0, 1)之间均匀分布的随机数,3行2列
  2. a = np.random.rand(3, 2)
  3. print(a)
  4. # 不提供形状
  5. b = np.random.rand()
  6. print(b)

输出: 

  1. [[0.26054323 0.28184468]
  2. [0.7783674 0.71733674]
  3. [0.90302256 0.49303252]]
  4. 0.6022098740124009

 

2、numpy.random.uniform(low=0.0, high=1.0, size=None)

作用:返回一个在区间[low, high)中均匀分布的数组,size指定形状。
参数
low, high:float型或者float型的类数组对象。指定抽样区间为[low, high),low的默认值为0.0,hign的默认值为1.0
size:int型或int型元组。指定形状,如果不提供size,则返回一个服从该分布的随机数。
例子

  1. # 在[1, 10)之间均匀抽样,数组形状为3行2列
  2. a = np.random.uniform(1, 10, (3, 2))
  3. print(a)
  4. # 不提供size
  5. b = np.random.uniform(1, 10)
  6. print(b)

输出:

  1. [[5.16545387 6.3769087 ]
  2. [9.98964899 7.88833885]
  3. [1.37173855 4.19855075]]
  4. 3.899250175275188

 

3、numpy.random.randn(d0, d1, ..., dn)

作用:返回一个指定形状的数组,数组中的值服从标准正态分布(均值为0,方差为1)。
参数:d0, d, ..., dn : int,可选。如果没有参数,则返回一个服从标准正态分布的float型随机数。
返回值:ndarray对象或者float
例子

  1. # 3行2列
  2. a = np.random.randn(3, 2)
  3. print(a)
  4. # 不提供形状
  5. b = np.random.randn()
  6. print(b)

输出:

  1. [[-1.46605527 0.35434705]
  2. [ 0.43408199 0.02689309]
  3. [ 0.48041554 1.62665755]]
  4. -0.6291254375915813

 

4、numpy.random.normal(loc=0.0, scale=1.0, size=None)

作用:返回一个由size指定形状的数组,数组中的值服从 μ=loc,σ=scaleμ=loc,σ=scale 的正态分布
参数
loc : float型或者float型的类数组对象,指定均值 μμ
scale : float型或者float型的类数组对象,指定标准差 σσ
size : int型或者int型的元组,指定了数组的形状。如果不提供size,且loc和scale为标量(不是类数组对象),则返回一个服从该分布的随机数。
输出:ndarray对象或者一个标量
例子

  1. # 标准正态分布,3行2列
  2. a = np.random.normal(0, 1, (3, 2))
  3. print(a)
  4. # 均值为1,标准差为3
  5. b = np.random.normal(1, 3)
  6. print(b)

输出:

  1. [[ 0.34912031 -0.08757564]
  2. [-0.99753101 0.37441719]
  3. [ 2.68072286 -1.03663963]]
  4. 5.770831320998463

 

5、numpy.random.randint(low, high=None, size=None, dtype='l')

作用:返回一个在区间[low, high)中离散均匀抽样的数组,size指定形状,dtype指定数据类型。
参数
low, high:int型,指定抽样区间[low, high)
size:int型或int型的元组,指定形状
dypte:可选参数,指定数据类型,比如int,int64等,默认是np.int
返回值:如果指定了size,则返回一个int型的ndarray对象,否则返回一个服从该分布的int型随机数。
例子

  1. # 在[1, 10)之间离散均匀抽样,数组形状为3行2列
  2. a = np.random.randint(1, 10, (3, 2))
  3. print(a)
  4. # 不提供size
  5. b = np.random.randint(1, 10)
  6. print(b)
  7. # 指定dtype
  8. c = np.random.randint(1, 10, dtype=np.int64)
  9. print(c)
  10. type(c)

 输出:

  1. [[3 1]
  2. [3 3]
  3. [5 8]]
  4. 6
  5. 2
  6. numpy.int64

 

6、numpy.random.random(size=None)

作用:返回从[0, 1)之间均匀抽样的数组,size指定形状。
参数
size:int型或int型的元组,如果不提供则返回一个服从该分布的随机数
返回值:float型或者float型的ndarray对象
例子

  1. # [0, 1)之间的均匀抽样,3行2列
  2. a = np.random.random((3, 2))
  3. print(a)
  4. # 不指定size
  5. b = np.random.random()
  6. print(b)

输出:

  1. [[0.80136714 0.63129059]
  2. [0.04556679 0.04433006]
  3. [0.09643599 0.53312761]]
  4. 0.32828505898057136

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/747357
推荐阅读
相关标签
  

闽ICP备14008679号