【学习】torch.rand

avatar
作者
猴君
阅读量:0

torch.rand 是 PyTorch 用于生成随机数的函数,生成的数值服从均匀分布

例如:torch.rand(2, 20) 是 PyTorch 中生成一个大小为 (2, 20) 的张量(tensor)的函数。这个张量的元素是从均匀分布中随机生成的,数值范围在 [0, 1) 之间(包括 0,不包括 1)。

执行 torch.rand(2, 20) 可能会生成如下类似的结果(每次运行会不同):

tensor([[0.5439, 0.3273, 0.8495, 0.6784, ..., 0.9547],         [0.0123, 0.5678, 0.1234, 0.2345, ..., 0.3456]])

如何设置数值范围 [a,b) ?

可以先生成标准范围 [0, 1) 内的随机数,然后通过简单的线性变换将其缩放到你需要的范围 [a, b)

 例如生成 [5, 10):

import torch  # 设定范围 a = 5 b = 10  # 生成在 [5, 10) 范围内的随机数张量 tensor = a + torch.rand(2, 20) * (b - a)  print(tensor)

 

简单应用:在深度学习中,使用torch.rand()随机生成输入来测试模型。

import torch from torch import  nn  net = nn.Sequential(nn.Linear(20, 256), nn.ReLU(), nn.Linear(256, 10)) X = torch.rand(2, 20) print("X:", X) print("net(X):", net(X))
X: tensor([[0.6276, 0.0258, 0.9628, 0.7895, 0.7752, 0.1271, 0.1957, 0.1183, 0.8805,          0.2174, 0.9073, 0.4641, 0.0163, 0.4616, 0.0609, 0.4872, 0.7485, 0.7163,          0.1049, 0.1827],         [0.2842, 0.0678, 0.6589, 0.0828, 0.5802, 0.9499, 0.3822, 0.3030, 0.4426,          0.9784, 0.0691, 0.3279, 0.6532, 0.6005, 0.3992, 0.7675, 0.1587, 0.3056,          0.4126, 0.3587]]) net(X): tensor([[ 0.0059,  0.0834, -0.1534, -0.2256,  0.1103, -0.0531,  0.0551, -0.0732,           0.0049, -0.2419],         [-0.1094,  0.0662, -0.1624, -0.1287,  0.0970,  0.1054, -0.1353, -0.2035,           0.1032,  0.0089]], grad_fn=<AddmmBackward0>)  Process finished with exit code 0

 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!