PyTorch 张量支持多种操作,这些操作主要可以分为两大类:张量操作和张量与标量的交互操作。
张量操作
-
索引和切片:
张量[开始:结束:步长]
:用于截取张量的子集。张量[:, 列名]
或张量[行名, :]
:按列或行选择元素。张量[开始:结束, 开始:结束]
:选择子矩阵。
-
数学运算:
+
,-
,*
,/
,//
:基本的算术运算。**
:幂运算。abs()
,acos()
,asin()
,atan()
,ceil()
,cos()
,cosh()
,deg2rad()
,dist()
,e()
(自然对数的底数 e),erf()
,erfc()
,exp()
,expm1()
,fabs()
,factorial()
,floor()
,fmod()
,frexp()
,fsum()
,gamma()
,gcd()
,hypot()
,inf()
,isclose()
,isfinite()
,isinf()
,isnan()
,ldexp()
,lgamma()
,log()
,log10()
,log1p()
,log2()
,modf()
,nan_to_num()
,permute()
,pow()
,prod()
,rad2deg()
,remainder()
,round()
,sign()
,sin()
,sinh()
,sqrt()
,tan()
,tanh()
,transpose()
等。
-
统计函数:
mean()
,median()
,mode()
,std()
,var()
等。
-
线性代数操作:
addmm()
,addmv()
,addr()
,bmm()
,bmv()
,dot()
,eig()
,inv()
,matmul()
,mm()
,mv()
,qr()
,symeig()
,svd()
等。
-
其他操作:
expand_as()
,flatten()
,gather()
,index_select()
,permute()
,repeat_interleave()
,reshape()
,scatter_add()
,scatter_nd()
,shape()
,squeeze()
,stack()
,unsqueeze()
等。
张量与标量的交互操作
-
广播:当张量与标量进行算术运算时,标量会自动广播到张量的形状以进行运算。
-
与标量的算术运算:
张量 + 标量
张量 - 标量
张量 * 标量
张量 / 标量
- 其他算术运算符。
-
与标量的比较运算:
==
,~=
,<
,<=
,>
,>=
等。
-
其他操作:
torch.all()
,torch.any()
,torch.argmax()
,torch.argmin()
,torch.argmax(dim=None)
,torch.argmax(dim=某个维度)
,torch.any(dim=None)
,torch.any(dim=某个维度)
,torch.eq()
,torch.exp()
,torch.log()
,torch.log10()
,torch.log1p()
,torch.log2()
,torch.max()
,torch.min()
,torch.mean()
,torch.median()
,torch.mode()
,torch.norm()
,torch.prod()
,torch.std()
,torch.sum()
,torch.tan()
等。
请注意,上述列表可能并不全面,PyTorch 的张量操作会随着版本的更新而有所变化。为了获取最准确的信息,建议查阅最新的 PyTorch 官方文档。