randn和rand的区别

我们在使用Numpy或Pytorch时有时候需要使用随机数来初始化一个矩阵,randn和rand就属于其中比较常见的两个函数。二者的使用方法相似,在numpy中函数形式为:

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

在Pytorch中的函数形式为:

torch.randn(d0, d1, d2, ..., dn)
torch.rand(d0, d1, d2, ..., dn)

在一些教程中经常会看到作者在写代码时混用它们二者,实际上它们还是有一些区别的。具体来讲,randn是从标准正态分布中返回一个或多个样本值。正态分布,也即这些随机数的期望为0,方差为1;rand则会产生[0, 1)之间的随机数。 关于记忆方法,我们可以把randn中的n看成是正态分布(Normal distribution)中“Normal”的缩写。

Numpy - randn
Numpy - rand
Pytorch - randn
Pytorch - rand

多说一句,在Tensorflow中也有类似功能的函数,根据其命名可以很容易推断出其功能。用于产生正态分布的函数为:

tf.random_normal()

常用参数为 (shape,stddev,mean,dtype);

用于产生[0,1)之间随机数的函数为:

tf.random_uniform()

默认产生0,1之间的随机数,不过也可以通过maxval指定上界,通过minval指定下界。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Tensor的创建除了构造器,还提供了工厂模式的创建方式:函数,同时提供了基本运算函数的封装。本主题就专门数理这些...
    杨强AT南京阅读 2,156评论 0 1
  • 换工作之后,PYTHON就放下啦,基本没接触了,也都忘记的差不多了,现在重新捡起来 1.1 NumPy Array...
    wqh8384阅读 583评论 0 1
  • 一、numpy概述 numpy(Numerical Python)提供了python对多维数组对象的支持:ndar...
    L_steven的猫阅读 3,504评论 1 24
  • 2019年8月10日 星期六 阵雨️ 亲子日记(653)王婷爸爸原创 这个暑假,女儿挺忙的。她刚刚考完试,应兄弟的...
    朋友是老酒阅读 4,841评论 56 120
  • 文|咲夕颜 一整个下午都绵软的雨 裹挟着薄霭天该有的倦意 人车杂沓 露水清凉 浪掷两年四...
    咲夕颜阅读 486评论 1 6