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 官方文档。