1. 生成随机数Tensor的方法
1.1 使用torch.randn(size)
torch.randn(size)函数可以生成一个size大小的随机数Tensor。该函数的输入是一个tuple,表示生成的Tensor的大小。随机数的分布服从均值为0,标准差为1的正态分布。
import torch
size = (3, 4)
random_tensor = torch.randn(size)
print(random_tensor)
上述代码中,我们生成了一个大小为3x4的随机数Tensor,并打印出来。
注意:生成的随机数Tensor中的元素值是在标准正态分布中随机取样得到的,因此每次运行代码得到的结果可能都不一样。
1.2 使用torch.rand(size)
torch.rand(size)函数可以生成一个size大小的随机数Tensor。该函数的输入是一个tuple,表示生成的Tensor的大小。随机数的分布在[0, 1)之间。
import torch
size = (3, 4)
random_tensor = torch.rand(size)
print(random_tensor)
上述代码中,我们生成了一个大小为3x4,元素在[0, 1)之间的随机数Tensor,并打印出来。
1.3 设置随机数的范围
如果我们想要生成指定范围的随机数Tensor,可以使用torch.Tensor的fill_()方法,结合torch.rand()或torch.randn()方法。
fill_(value)方法会用value来填充Tensor中的所有元素,而value可以是一个随机数的范围。
import torch
size = (3, 4)
min_value = -1.0
max_value = 1.0
random_tensor = torch.Tensor(size).fill_(0.5) # 先用0.5填充
random_tensor.uniform_(min_value, max_value) # 再设置随机数范围
print(random_tensor)
上述代码中,我们先用0.5填充了一个大小为3x4的Tensor,然后使用uniform_()方法设置了随机数的范围为[-1.0, 1.0)。
1.4 设置随机数的温度(temperature)
在生成随机数Tensor时,可以通过设置温度(temperature)来控制随机性。温度的值越高,生成的随机数差异性就越大;反之,温度的值越低,生成的随机数差异性就越小。
要设置随机数的温度,可以通过调整生成随机数的分布,进而控制随机数的差异性。
例如,在生成服从均匀分布的随机数时,我们可以使用torch.Tensor的uniform_()方法,通过调整上界和下界的差值来控制温度的影响。
import torch
size = (3, 4)
min_value = 0.0
max_value = 1.0
temperature = 0.6
random_tensor = torch.Tensor(size).uniform_(min_value, max_value)
random_tensor.pow_(1 / temperature)
print(random_tensor)
上述代码中,我们生成了一个大小为3x4的服从均匀分布的随机数Tensor,并通过调用pow_()方法将其平方根的倒数(即1/temperature)作为温度影响因子。当温度为1时,不产生温度影响;当温度大于1时,增加差异性;当温度小于1时,减小差异性。
2. 总结
本文介绍了在PyTorch中生成随机数Tensor的几种方法。我们可以使用torch.randn()和torch.rand()方法生成服从正态分布和均匀分布的随机数Tensor。通过设置随机数的范围,我们可以生成指定范围的随机数Tensor。此外,通过调整温度因子,我们还可以控制随机数的差异性。
以上就是PyTorch生成随机数Tensor的方法的汇总。