广义的张量可以是任何维度的,而狭义来说,一维是向量,二维是矩阵,三维及以上是张量。
- 创建张量:
a=torch.tensor(1,dtype=torch.float32) - tensor–>numpy:
b=a.NumPy()b是numpy,但是a还是tensor - numpy–>tensor:
c=torch.from_NumPy(b)c是tensor - tensor–>list :
tensor.tolist() - list–>tensor:
torch.tensor(list) - 单个元素的张量
x转换为int:x.item()
因为支持自动梯度功能,PyTorch的变量来自包torch.autograd
1.向量操作
向量生成
a=torch.linspace(1.0,10.0,4)#(起点,终点,分成几份)a=torch.arange(1,5)# [1,2,3,4]
向量拼接
b=torch.cat([v1,v2,v3])# 小括号套中括号
元素计数
x=torch.numel(a)
逐元素加减乘 +/-/*
向量乘除标量 torch.div(a,2)
2.矩阵操作
torch.zeros(3,3,3) # 几个数就是几维,直接传数就行
torch.ones_like(a) #仿照现有矩阵的形状生成全0或全1的矩阵
torch.eye(3) # 生成3*3的单位矩阵(对角线为1)
torch.t(a) # 矩阵转置
* # 相同形状的矩阵对应元素相乘
torch.mm(a1,a2)/torch.matmul(a1,a2)/a1@a2 # 矩阵点积/乘法
torch.det(a) # 求行列式的值
torch.inverse # 矩阵求逆
torch.cat([a1,a2],0) # 矩阵拼接,0上下,1左右
3.张量操作
- 改变形状
a.view(5,5)# 直接传数就行a.view(5,-1),保证5行就行
- 张量拼接
torch.cat([a1,a2],2)- 对于需要拼接的张量,维度数量必须相同,进行拼接的维度的尺寸可以不同,但是其它维度的尺寸必须相同。
本文详细介绍了PyTorch中张量的基本概念及其常见操作方法,包括张量的创建、转换、向量与矩阵运算及张量的形状变化等,并提供了丰富的代码实例。
1万+

被折叠的 条评论
为什么被折叠?



