torch.rand
(*size, ***, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor
返回一个标准分布在[0,1)区间内的随机tensor。
tensor的大小由变量参数size来指定。
参数
size (int…) – 一个integers序列,用来定义输出的tensor的形状大小。它可以是一个参数变量值,或一个集合,类似一个list或一个tuple。
键值参数
out (Tensor, 可选参数) – 输出tensor.dtype(torch.dtype
,可选参数)- 指定返回tensor的数据类型。默认:如果是None
,则使用全局默认(查看torch.set_default_tensor_type()
)。
layout (torch.layout
, 可选参数) – 指定返回tensor的layout. 默认: torch.strided
.
device (torch.device
, 可选参数) – 指定返回tensor的device. 默认: 如果是 None
, 则使用默认的tensor类型对应的当前设备(查看 torch.set_default_tensor_type()
). device
如果是CPUtensor类型则指定为CPU,如果是CUDA tensor类型则指定为当前存在的CUDA设备。
requires_grad (bool, 可选参数) – 如果为autograd则将在返回的tensor上自动记录梯度。默认为: False
.
例:
>>> torch.rand(4)
tensor([ 0.5204, 0.2503, 0.3525, 0.5673])
>>> torch.rand(2, 3)
tensor([[ 0.8237, 0.5781, 0.6879],
[ 0.3816, 0.7249, 0.0998]])
torch.randn
(*size, ***, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor
返回一个以0为均值,以1为标准差的正态分布随机数列tensor(也称为标准正态分布)
out i ∼ N ( 0 , 1 ) \text{out}_{i} \sim \mathcal{N}(0, 1) outi∼N(0,1)
tensor的大小由变量参数size
来指定。
参数
size (int…) – 用来指定输出tensor的形状大小的整数序列。可以是变量数值或者如list/tuple的数值集合。
关键字变量
out (Tensor, 可选参数) – 输出的 tensor.
dtype (
torch.dtype
, 可选参数) – 指定返回tensor的数值类型. 默认: 如果是None
, 则使用全局默认 (查看torch.set_default_tensor_type()
). layout (
torch.layout
, 可选参数) – 指定返回tensor的层级. 默认:torch.strided
. device (
torch.device
, 可选参数) – 指定返回tensor的设备。默认: 如果是None
, 使用默认tensor类型的当前设备 (查看torch.set_default_tensor_type()
).device
如果是CPU tensor的类型,则设备为CPU,如果是CUDA tensor的类型,则设备为CUDA设备。 requires_grad (bool, 可选参数) – 如果autograd被设置,则将在返回的tensor上记录梯度。默认:
False
.
例:
>>> torch.randn(4)
tensor([-2.1436, 0.9966, 2.3426, -0.6366])
>>> torch.randn(2, 3)
tensor([[ 1.5954, 2.8929, -1.0923],
[ 1.1719, -0.4709, -0.1996]])
torch.mm
(input, mat2, ***, out=None) → Tensor
计算矩阵input
和mat2
的矩阵乘积。
如果 input
是一个 ( n × m ) (n \times m) (n×m) tensor, mat2
是一个 ( m × p ) (m \times p) (m×p) tensor, out
将会是一个 ( n × p ) (n \times p) (n×p) tensor.
注意
该函数不能广播. 对于带广播的矩阵乘积,参看
torch.matmul()
.
这个算子支持TensorFloat32.
参数
input (Tensor) – 用来乘积的第一个矩阵
mat2 (Tensor) – 用来乘积的第二个矩阵
关键参数
out (Tensor, optional) – 输出tensor.
例:
>>> mat1 = torch.randn(2, 3)
>>> mat2 = torch.randn(3, 3)
>>> torch.mm(mat1, mat2)
tensor([[ 0.4851, 0.5037, -0.3633],
[-0.0760, -3.6705, 2.4784]])
torch.t
(input) → Tensor
期望输入不大于2-D的tensor,转置它的第0维和第1维。
0-D 和 1-D tensors 会原样返回. 当输入是一个2-D tensor时,这个函数与transpose(input, 0, 1)
功能相等,相当于转置.
参数
input (Tensor) – 输入 tensor.
例:
>>> x = torch.randn(())
>>> x
tensor(0.1995)
>>> torch.t(x)
tensor(0.1995)
>>> x = torch.randn(3)
>>> x
tensor([ 2.4320, -0.4608, 0.7702])
>>> torch.t(x)
tensor([ 2.4320, -0.4608, 0.7702])
>>> x = torch.randn(2, 3)
>>> x
tensor([[ 0.4875, 0.9158, -0.5872],
[ 0.3938, -0.6929, 0.6932]])
>>> torch.t(x)
tensor([[ 0.4875, 0.3938],
[ 0.9158, -0.6929],
[-0.5872, 0.6932]])
item
() → number
将tensor类型的数值返回成标准的python数据,这只对含单个元素的tensor起效。对其他种情形,请见tolist()。
该操作不可微分。
例:
>>> x = torch.tensor([1.0])
>>> x.item()
1.0
tolist
() → list or number
将tensor按(嵌入的)list形式返回。对于标量,会返回一个标准的Python数值,和item()一样。如有必要,tensors会自动移到CPU上。
该操作不可微分。
例:
>>> a = torch.randn(2, 2)
>>> a.tolist()
[[0.012766935862600803, 0.5415473580360413],
[-0.08909505605697632, 0.7729271650314331]]
>>> a[0,0].tolist()
0.012766935862600803
```python
>>> a = torch.randn(2, 2)
>>> a.tolist()
[[0.012766935862600803, 0.5415473580360413],
[-0.08909505605697632, 0.7729271650314331]]
>>> a[0,0].tolist()
0.012766935862600803