一、torch.randn函数
torch.randn函数是PyTorch中常用的函数之一,用于生成正态分布随机数的张量。函数的返回值是由输入大小决定的张量,其中的元素服从均值为0,方差为1的正态分布。这个函数可以根据需要看作是从均值为0,方差为1的正态分布中随机抽取一些值来填充张量的元素。
二、torch.randn是什么意思
在PyTorch中,randn函数是生成正态分布随机数的一个常用函数,也是很多使用PyTorch进行深度学习任务的程序员最为熟悉的函数之一。它可以用来生成之后需要用到的张量,是神经网络中的一个重要的元素。
三、torch.randn()参数
torch.randn()函数的参数有两个,第一个是dsize或者size参数,表示返回的随机数的张量的大小。第二个是dtype参数,表示返回的随机数的张量中的元素的数据类型。
import torch # 生成一个大小为(3 * 4 * 5)的3D张量 x = torch.randn(3, 4, 5) print(x.size()) # 输出 "torch.Size([3, 4, 5])"
四、torch.randn().cuda
如果在使用PyTorch进行深度学习的时候需要使用GPU加速,那么可以使用cuda函数将生成的随机数张量转移到GPU上执行。
# 生成一个大小为(3 * 4 * 5)的3D张量并且将其转移到GPU上执行 x = torch.randn(3, 4, 5).cuda() print(x)
五、torch.randn_like函数
torch.randn_like(x)是生成一个与张量x大小相同的张量,其元素服从均值为0,方差为1的正态分布随机抽样。
import torch # 生成两个大小相同的张量y和z y = torch.randn(3, 4, 5) z = torch.randn_like(y) print("y: ", y) print("z: ", z)
六、torch.randn()三个参数
torch.randn()也可以有三个参数。第三个参数是一个包含了张量数据类型的元组,用来指定生成的随机数的张量元素的数据类型。
import torch # 生成一个大小为(3 * 4 * 5)的3D张量,元素类型为int x = torch.randn(3, 4, 5, dtype=torch.int) print(x)
七、torch.randn和torch.rand区别
torch.randn和torch.rand两个函数都可以生成随机数。torch.rand生成的是0到1之间的均匀分布随机数,而torch.randn生成的是均值为0,方差为1的正态分布随机数。
八、torch.randn参数
torch.randn()函数的参数有两个,第一个是dsize或者size参数,表示返回的随机数的张量的大小。第二个是dtype参数,表示返回的随机数的张量中的元素的数据类型。
import torch # 使用dsize参数生成一个大小为(3 * 4 * 5)的3D张量 x = torch.randn((3, 4, 5)) print(x.size()) # 输出 "torch.Size([3, 4, 5])"
九、torch.randn函数实现过程
torch.randn()函数利用Python的random库和numpy库中的正态分布随机数生成函数来生成满足均值为0,方差为1的正态分布随机数。随机数的排列方式和输出的张量的大小有关。
import numpy as np import random # 使用Python的random库中的gauss函数和numpy库中的reshape函数模拟生成一个(2 * 3)的张量 x = np.reshape([random.gauss(0, 1) for i in range(6)], [2, 3]) print(x)
十、torch.randn指定数据范围
在使用torch.randn()生成正态分布随机数时,可以利用张量的运算规则,对生成的随机数进行变换,并且将输出的随机数限定在一个特定的范围内。
import torch # 使用mask将大于0的随机数置0 data = torch.randn(3, 4) mask = data > 0 output = torch.zeros_like(data) output[mask] = data[mask] print(output)