阅读量: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