导入库
import torch
1、torch.empty
构建确定大小的矩阵,但数字是随机的,没有初始化
x = torch.empty(5,3)
x
Out[9]:
tensor([[0.0000e+00, 2.5244e-29, 0.0000e+00],
[2.5244e-29, 1.1210e-44, -0.0000e+00],
[0.0000e+00, 0.0000e+00, 0.0000e+00],
[1.4013e-45, 0.0000e+00, 0.0000e+00],
[0.0000e+00, 0.0000e+00, 0.0000e+00]])
2、torch.rand & torch.randn
前者输出的数据呈均匀分布,后者呈正态分布
torch.rand(5,3)
Out[10]:
tensor([[0.1297, 0.7328, 0.5596],
[0.9479, 0.7298, 0.2744],
[0.3915, 0.6741, 0.2043],
[0.7056, 0.3216, 0.9894],
[0.0097, 0.0585, 0.2258]])
torch.randn(5,3)
Out[19]:
tensor([[ 0.4864, -1.4011, -0.6021],
[ 0.5027, 1.3667, -0.8524],
[ 0.8136, 0.5197, -0.6726],
[ 0.2392, 1.1792, -1.4161],
[ 0.3456, 0.3103, -1.8149]])
3、torch.zeros
输出确定大小的零矩阵
torch.zeros(5,3,dtype=torch.long)
Out[11]:
tensor([[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]])
4、torch.tensor
直接使用指定的数来构建张量
torch.tensor([5.5,3])
Out[12]: tensor([5.5000, 3.0000])
5、x.new_ones()
将已存在的张量都变成1,矩阵大小不变
x = x.new_ones(5,3,dtype=torch.double)
x
Out[13]:
tensor([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]], dtype=torch.float64)
6、torch.randn_like
矩阵大小不变,但是数据变成随机数
x=torch.randn_like(x,dtype=torch.float)
x
Out[16]:
tensor([[ 0.2321, 0.3828, 0.6428],
[ 1.2721, -0.4849, -1.6789],
[-1.2455, 1.2298, -2.1738],
[ 0.2746, 0.0576, -1.3749],
[ 1.3844, 1.1612, 1.3424]])
查看张量的大小
x.size() Out[17]: torch.Size([5, 3])
7、张量的加法运算
第一种方法
result = torch.empty(5,3)
torch.add(x,y,out = result)
第二种方法
y.add_(x)
使用这种方法,会改变y值的大小。通过这一方法引申出来,得到一个规律
注意:任何使张量会发生变化的操作都有一个后缀 '_'。例如:
x.copy_(y)
,x.t_()
8、x.view
改变一个张量的形状
(1)将张量变成15×1
x.view(15)
(2)将张量变成3×5
x.view(-1,5)