1.Tensor
a:各种数值数据都可已称为张量
b:常数:scaler:0阶张量
c:向量:vector:1阶张量
d:矩阵:matrix:2阶张量
e:3阶张量
2.张量的创建方式
1.使用python中的列表或者序列来创建tensor
torch.tensor([[1., -1.], [1., -1.]])
2.使用numpy中的数组创建tensor
torch.tensor(np.array([[1, 2, 3], [4, 5, 6]]))
3.使用torch的api创建tensor
(1)torch.empty(3, 4)创建三行四列的空的tensor,会用无用数据进行填充
(2)torch.ones([3, 4])创建三行四列的全为1的tensor
(3)torch.zeros([3, 4])创建三行四列的全为0的tensor
(4)torch.rand([3, 4])创建三行四列的随机值tensor 随机的去见识[0, 1)
(5)torch.randint(low=0, high=10,size=[3, 4])创建三行四列随机整数的tensor,随机值的区间是[low, high) random + int
(6)torch.randn([3, 4])创建三行四列的随机数的tensor,随机值的分布式均值为0,方差为1
3.pytorch中tensor的常用方法
张量的方法和属性
(1)获取torch中的数据(当tensor中只有一个元素可用时):torch.item() # 用的非常多
这里的t1=torch.Tensor([[[1]]]) 表示三阶 有几对中括号表示几阶
两个元素的就会报错
(2)转化为numpy数组
直接变量名加.numpy()就行了 直接把tensor 转成np array
(3)获取形状:torch.size() #注意和np的shape不同 要加()
直接变量名加.size() 如果要获取某一维度上的形状 t2.size(-1)获取t2最后一个维度上的形状
(4)形状改变:torch.view((3, 4)) 类似numpy中的reshape 是一种浅拷贝,仅仅是形状发生变化
乘积要想用 三行四列不能转化成三行六列 t2.view([2, -1]) -1表示根据前面数决定后面的数值 相当于自己跟你算
(5)获取维度torch.dim() 获取阶数 常数为0 向量1 矩阵2
(6)获取最大值最小值:tensor.max() tensor.min()
(7)转置:tensor.t() 二维的时候 tansform就是转置
t1.transpose(0, 1) 交换 第一维度和第二维度的值
t1.permute(1, 2, 0) 把原来的位置转换成现在的位置(维度变化)
怎么理解转置
t3 = torch.Tensor(np.arange(24).reshape(3,2, 4)) 怎么理解 3 2 4 三块 每块 两行四列