张量tensor
- 0阶张量:标量,[0],转置就是本身
- 1阶张量:向量,[0,1,2,3],转置就是本身
- 2阶张量:矩阵,[ [0,1,2],[3,4,5] ],存在转置
- 3~N阶张量:高维数据集,存在转置
tensor的创建方法
使用列表
t1 = torch.tensor([1., 2., 3.]) #1.表示float类型的数据1
使用numpy.array
array1 = np.array([1.0, 2.0], [3.0, 4.0])
#使用如下两种方法,将array转换为tensor
t1 = torch.tensor(array1)
t2 = torch.from_numpy(array1)
使用内置方法生成
torch.empty(3,4) 创建3行4列的空tensor,其中数据随机
torch.ones([3,4]) 创建3行4列全为1的tensor
torch.zeros([3,4]) 创建3行4列全为0的tensor
torch.rand([3,4]) 创建3行4列的随机值tensor,随机值区间为[0, 1)
torch.randint(low = 0, high = 10, size = [3,4]) 创建3行4列的随机整数tensor,随机区间是[low, high)
torch.randn([3,4]) 创建3行4列的随机值tensor,随机值分布式均值为0,方差为1
tensor的使用方法
-
获取值
-
tensor.item()
针对仅存在1个元素的tensor,可以直接使用tensor.item()输出一个该元素的float值 -
tensor.data
获取不带有grad的tensor数据,可用于转化numpy() -
tensor.detach()
获取不带有grad的tensor数据,可用于转换numpy()
-
-
从numpy转化tensor
- tensor.numpy() 可以将tensor转化为numpy
-
获取tensor形状
-
tensor.size()
-
tensor.shape()
-
-
改变tensor形状
- tensor.view((3,4)),类似于numpy.reshape,是一种浅拷贝,仅仅是形状发生改变,view需要确保转换前后数据量相等
-
获取tensor阶数
- tensor.dim() 获取阶数
-
获取最大最小元素值
-
tensor.max() 获取最大值
-
tensor.min() 获取最小值,格式为0阶tensor
-
-
转置
-
tensor.T:获取全转置变量
-
tensor.transpose() :转置指定对象
-
tensor.permute() :转置指定对象
-
-
取值
-
tensor[1,:,:] 获取第一个维度的第二个集合
-
tensor[1,2,3]获取指定元素
-