这三者都是用来生成随机数字的tensor,其中:
torch.rand():满足0-1上的均匀分布
torch.randn():满足标准正态分布(有正有负)
torch.randn_like():输入与传入参数size相同的满足标准正态分布的随机数字tensor
一、torch.rand()
torch.rand(size),size可以是一个整数或者元组
代码示例:
import torch
x = torch.rand(3)
y = torch.rand(3,5)
print("x:",x,type(x))
print("y:",y,type(y))
输出:
二、torch.randn()
代码示例:
import torch
x = torch.randn(3)
y = torch.randn(3,5)
print("x:",x,type(x))
print("y:",y,type(y))
输出:
三、 torch.randn_like()
output_tensor = torch.randn_like(input_tensor, dtype=None, layout=None, device=None, requires_grad=False)
具体参数如下:
input_tensor(必需)- tensor对象,输出张量的大小与输入对象一致。
dtype(可选)- 输出张量所需的数据类型。默认为None,这意味着将使用输入张量的数据类型。
layout(可选)- 输出张量所需的内存布局。默认为None,这意味着将使用输入张量的内存布局。
device(可选)- 输出张量所需的设备。默认为None,这意味着将使用输入张量的设备。
requires_grad(可选)- 输出张量是否应该在反向传播期间计算其梯度。默认为False
代码示例:
import torch
x = torch.zeros(3,4)
y = torch.randn_like(x)
print("y:",y,type(y))
输出:
ps:类似的还有 empty_like,zeros_like,rand_like等等,基本都是一个逻辑