您的位置:

Torch.randn:多方位全面解析

一、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)