Reduction Ops
减少行动
译者:ApacheCN
torch.argmax(input, dim=None, keepdim=False)
返回维度上张量的最大值的索引。
这是 torch.max()
返回的第二个值。有关此方法的确切语义,请参阅其文档。
参数:
- 输入 (Tensor) - 输入张量
- dim (int) - 降低的维数。如果
None
,则返回展平输入的argmax。 - keepdim (bool) - 输出张量是否保留
dim
。如果dim=None
,则忽略。
例:
>>> a = torch.randn(4, 4)
>>> a
tensor([[ 1.3398, 0.2663, -0.2686, 0.2450],
[-0.7401, -0.8805, -0.3402, -1.1936],
[ 0.4907, -1.3948, -1.0691, -0.3132],
[-1.6092, 0.5419, -0.2993, 0.3195]])
>>> torch.argmax(a, dim=1)
tensor([ 0, 2, 0, 1])
torch.argmin(input, dim=None, keepdim=False)
返回维度上张量的最小值的索引。
这是 torch.min()
返回的第二个值。有关此方法的确切语义,请参阅其文档。
Parameters:
- 输入 (Tensor) - 输入张量
- dim (int) - 降低的维数。如果
None
,则返回展平输入的argmin。 - keepdim (bool) - 输出张量是否保留
dim
。如果dim=None
,则忽略。
Example:
>>> a = torch.randn(4, 4)
>>> a
tensor([[ 0.1139, 0.2254, -0.1381, 0.3687],
[ 1.0100, -1.1975, -0.0102, -0.4732],
[-0.9240, 0.1207, -0.7506, -1.0213],
[ 1.7809, -1.2960, 0.9384, 0.1438]])
>>> torch.argmin(a, dim=1)
tensor([ 2, 1, 3, 1])
torch.cumprod(input, dim, dtype=None) → Tensor
返回维度dim
中input
元素的累积乘积。
例如,如果input
是大小为N的向量,则结果也将是具有元素的大小为N的向量。
Parameters:
- 输入 (Tensor) - 输入张量
- 昏暗 (int) - 执行操作的维度
- dtype (
torch.dtype
,可选) - 返回张量的所需数据类型。如果指定,则在执行操作之前将输入张量转换为dtype
。这对于防止数据类型溢出很有用。默认值:无。
Example:
>>> a = torch.randn(10)
>>> a
tensor([ 0.6001, 0.2069, -0.1919, 0.9792, 0.6727, 1.0062, 0.4126,
-0.2129, -0.4206, 0.1968])
>>> torch.cumprod(a, dim=0)
tensor([ 0.6001, 0.1241, -0.0238, -0.0233, -0.0157, -0.0158, -0.0065,
0.0014, -0.0006, -0.0001])
>>> a[5] = 0.0
>>> torch.cumprod(a, dim=0)
tensor([ 0.6001, 0.1241, -0.0238, -0.0233, -0.0157, -0.0000, -0.0000,
0.0000, -0.0000, -0.0000])
torch.cumsum(input, dim, out=None, dtype=None) → Tensor
返回维度dim
中input
的元素的累积和。
For example, if input
is a vector of size N, the result will also be a vector of size N, with elements.
Parameters:
- 输入 (Tensor) - 输入张量
- 昏暗 (int) - 执行操作的维度
- dtype (
torch.dtype
,可选) - 返回张量的所需数据类型。如果指定,则在执行操作之前将输入张量转换为dtype
。这对于防止数据类型溢出很有用。默认值:无。
Example:
>>> a = torch.randn(10)
>>> a
tensor([-0.8286, -0.4890, 0.5155, 0.8443, 0.1865, -0.1752, -2.0595,
0.1850, -1.1571, -0.4243])
>>> torch.cumsum(a, dim=0)
tensor([-0.8286, -1.3175, -0.8020, 0.0423, 0.2289, 0.0537, -2.0058,
-1.8209, -2.9780, -3.4022])
torch.dist(input, other, p=2) → Tensor
返回(input
- other
)的p范数
input
和other
的形状必须是可播放的。
Parameters:
Example:
>>> x = torch.randn(4)
>>> x
tensor([-1.5393, -0.8675, 0.5916, 1.6321])
>>> y = torch.randn(4)
>>> y
tensor([ 0.0967, -1.0511, 0.6295, 0.8360])
>>> torch.dist(x, y, 3.5)
tensor(1.6727)
>>> torch.dist(x, y, 3)
tensor(1.6973)
>>> torch.dist(x, y, 0)
tensor(inf)
>>> torch.dist(x, y, 1)
tensor(2.6537)
torch.logsumexp(input, dim, keepdim=False, out=None)
返回给定维dim
中input
张量的每一行的求和指数的对数。计算在数值上是稳定的。
如果keepdim
为True
,则输出张量与input
的大小相同,但尺寸为dim
的大小为1.否则,dim
被挤压(参见 torch.squeeze()
),导致输出张量比input
少1个维度。
Parameters:
- 输入 (Tensor) - 输入张量
- 昏暗 (int或 元组python:整数) - 要减少的维度或维度
- keepdim (bool) - 输出张量是否保留
dim
- out (Tensor, 任选) - 输出张量
Example::
>>> a = torch.randn(3, 3)
>>> torch.logsumexp(a, 1)
tensor([ 0.8442, 1.4322, 0.8711])
torch.mean()
torch.mean(input) → Tensor
返回input
张量中所有元素的平均值。
参数: | 输入 (Tensor) - 输入张量 |
---|---|
Example:
>>> a = torch.randn(1, 3)
>>> a
tensor([[ 0.2294, -0.5481, 1.3288]])
>>> torch.mean(a)
tensor(0.3367)
torch.mean(input, dim, keepdim=False, out=None) → Tensor
返回给定维dim
中input
张量的每一行的平均值。如果dim
是维度列表,请减少所有维度。
如果keepdim
为True
,则输出张量与input
的大小相同,但尺寸为1的尺寸dim
除外。dim
被挤压(见) torch.squeeze()
),导致输出张量具有1(或len(dim)
)更少的维度。
Parameters:
Example:
>>> a = torch.randn(4, 4)
>>> a
tensor([[-0.3841, 0.6320, 0.4254, -0.7384],
[-0.9644, 1.0131, -0.6549, -1.4279],
[-0.2951, -1.3350, -0.7694, 0.5600],
[ 1.0842, -0.9580, 0.3623, 0.2343]])
>>> torch.mean(a, 1)
tensor([-0.0163, -0.5085, -0.4599, 0.1807])
>>> torch.mean(a, 1, True)
tensor([[-0.0163],
[-0.5085],
[-0.4599],
[ 0.1807]])
torch.median()
torch.median(input) → Tensor
返回input
张量中所有元素的中值。
Parameters: | input (Tensor) – the input tensor |
---|---|
Example:
>>> a = torch.randn(1, 3)
>>> a
tensor([[ 1.5219, -1.5212, 0.2202]])
>>> torch.median(a)
tensor(0.2202)
torch.median(input, dim=-1, keepdim=False, values=None, indices=None) -> (Tensor, LongTensor)
返回给定维dim
中input
张量的每一行的中值。还将中值的索引位置返回为LongTensor
。
默认情况下,dim
是input
张量的最后一个维度。
如果keepdim
为True
,则输出张量与input
的尺寸相同,但尺寸为dim
的尺寸为1.否则,dim
被挤压(参见 torch.squeeze()
),导致输出张量比input
少1个维度。
Parameters:
- 输入 (Tensor) - 输入张量
- 昏暗 (int) - 减少的维度
- keepdim (bool) - 输出张量是否保留
dim
- 值 (tensor , 可选) - 输出张量
- 指数 (tensor , 任选) - 输出指数张量
Example:
>>> a = torch.randn(4, 5)
>>> a
tensor([[ 0.2505, -0.3982, -0.9948, 0.3518, -1.3131],
[ 0.3180, -0.6993, 1.0436, 0.0438, 0.2270],
[-0.2751, 0.7303, 0.2192, 0.3321, 0.2488],
[ 1.0778, -1.9510, 0.7048, 0.4742, -0.7125]])
>>> torch.median(a, 1)
(tensor([-0.3982, 0.2270, 0.2488, 0.4742]), tensor([ 1, 4, 4, 3]))
torch.mode(input, dim=-1, keepdim=False, values=None, indices=None) -> (Tensor, LongTensor)
返回给定维dim
中input
张量的每一行的模式值。还将模式值的索引位置作为LongTensor
返回。
By default, dim
is the last dimension of the input
tensor.
如果keepdim
为True
,则输出张量与input
的尺寸相同,但尺寸为dim
的尺寸为1.否则,dim
被挤压(参见 torch.squeeze()
),导致输出张量的尺寸比input
少1。
注意
尚未为torch.cuda.Tensor
定义此功能。
Parameters:
- 输入 (Tensor) - 输入张量
- 昏暗 (int) - 减少的维度
- keepdim (bool) - 输出张量是否保留
dim
- 值 (tensor , 可选) - 输出张量
- 指数 (tensor , 任选) - 输出指数张量
Example:
>>> a = torch.randn(4, 5)
>>> a
tensor([[-1.2808, -1.0966, -1.5946, -0.1148, 0.3631],
[ 1.1395, 1.1452, -0.6383, 0.3667, 0.4545],
[-0.4061, -0.3074, 0.4579, -1.3514, 1.2729],
[-1.0130, 0.3546, -1.4689, -0.1254, 0.0473]])
>>> torch.mode(a, 1)
(tensor([-1.5946, -0.6383, -1.3514, -1.4689]), tensor([ 2, 2, 3, 2]))
torch.norm(input, p='fro', dim=None, keepdim=False, out=None)
返回给定张量的矩阵范数或向量范数。
Parameters:
-
输入 (Tensor) - 输入张量
-
p (int, 漂浮 , ] inf , -inf , '来'__, 'nuc'__, 任选) -
规范的顺序。默认值:
'fro'
可以计算以下规范:| ord |矩阵规范|矢量规范| | --- | --- | --- | |没有| Frobenius规范| 2范数| | '来'| Frobenius规范| - | | 'nuc'|核规范| - | |其他|当昏暗是无|时,作为vec规范sum(abs(x) ord)(1./ord)|
-
昏暗 (int, 2元组python:ints , 2-list of python:ints , 可选) - 如果是int,将计算向量范数,如果是2元组的int,将计算矩阵范数。如果值为None,则当输入张量仅具有两个维度时将计算矩阵范数,当输入张量仅具有一个维度时将计算向量范数。如果输入张量具有两个以上的维度,则向量范数将应用于最后一个维度。
-
keepdim (bool, 任选) - 输出张量是否保留
dim
。如果dim
=None
和out
=None
,则忽略。默认值:False
-
out (Tensor, 可选) - 输出张量。如果
dim
=None
和out
=None
,则忽略。
Example:
>>> import torch
>>> a = torch.arange(9, dtype= torch.float) - 4
>>> b = a.reshape((3, 3))
>>> torch.norm(a)
tensor(7.7460)
>>> torch.norm(b)
tensor(7.7460)
>>> torch.norm(a, float('inf'))
tensor(4.)
>>> torch.norm(b, float('inf'))
tensor([4., 3., 4.])
>>> c = torch.tensor([[ 1, 2, 3],[-1, 1, 4]] , dtype= torch.float)
>>> torch.norm(c, dim=0)
tensor([1.4142, 2.2361, 5.0000])
>>> torch.norm(c, dim=1)
tensor([3.7417, 4.2426])
>>> torch.norm(c, p=1, dim=1)
tensor([6., 6.])
>>> d = torch.arange(8, dtype= torch.float).reshape(2,2,2)
>>> torch.norm(d, dim=(1,2))
tensor([ 3.7417, 11.2250])
>>> torch.norm(d[0, :, :]), torch.norm(d[1, :, :])
(tensor(3.7417), tensor(11.2250))
torch.prod()
torch.prod(input, dtype=None) → Tensor
返回input
张量中所有元素的乘积。
Parameters:
- 输入 (Tensor) - 输入张量
- dtype (
torch.dtype
,可选) - 返回张量的所需数据类型。如果指定,则在执行操作之前将输入张量转换为dtype
。这对于防止数据类型溢出很有用。默认值:无。
Example:
>>> a = torch.randn(1, 3)
>>> a
tensor([[-0.8020, 0.5428, -1.5854]])
>>> torch.prod(a)
tensor(0.6902)
torch.prod(input, dim, keepdim=False, dtype=None) → Tensor
返回给定维dim
中input
张量的每一行的乘积。
If keepdim
is True
, the output tensor is of the same size as input
except in the dimension dim
where it is of size 1. Otherwise, dim
is squeezed (see torch.squeeze()
), resulting in the output tensor having 1 fewer dimension than input
.
Parameters:
- 输入 (Tensor) - 输入张量
- 昏暗 (int) - 减少的维度
- keepdim (bool) - 输出张量是否保留
dim
- dtype (
torch.dtype
,可选) - 返回张量的所需数据类型。如果指定,则在执行操作之前将输入张量转换为dtype
。这对于防止数据类型溢出很有用。默认值:无。
Example:
>>> a = torch.randn(4, 2)
>>> a
tensor([[ 0.5261, -0.3837],
[ 1.1857, -0.2498],
[-1.1646, 0.0705],
[ 1.1131, -1.0629]])
>>> torch.prod(a, 1)
tensor([-0.2018, -0.2962, -0.0821, -1.1831])
torch.std()
torch.std(input, unbiased=True) → Tensor
返回input
张量中所有元素的标准偏差。
如果unbiased
为False
,则将通过偏差估算器计算标准偏差。否则,将使用贝塞尔的修正。
Parameters:
Example:
>>> a = torch.randn(1, 3)
>>> a
tensor([[-0.8166, -1.3802, -0.3560]])
>>> torch.std(a)
tensor(0.5130)
torch.std(input, dim, keepdim=False, unbiased=True, out=None) → Tensor
返回给定维dim
中input
张量的每一行的标准偏差。
If keepdim
is True
, the output tensor is of the same size as input
except in the dimension dim
where it is of size 1. Otherwise, dim
is squeezed (see torch.squeeze()
), resulting in the output tensor having 1 fewer dimension than input
.
If unbiased
is False
, then the standard-deviation will be calculated via the biased estimator. Otherwise, Bessel's correction will be used.
Parameters:
- 输入 (Tensor) - 输入张量
- 昏暗 (int) - 减少的维度
- keepdim (bool) - 输出张量是否保留
dim
- 无偏 (bool) - 是否使用无偏估计
- out (Tensor, 任选) - 输出张量
Example:
>>> a = torch.randn(4, 4)
>>> a
tensor([[ 0.2035, 1.2959, 1.8101, -0.4644],
[ 1.5027, -0.3270, 0.5905, 0.6538],
[-1.5745, 1.3330, -0.5596, -0.6548],
[ 0.1264, -0.5080, 1.6420, 0.1992]])
>>> torch.std(a, dim=1)
tensor([ 1.0311, 0.7477, 1.2204, 0.9087])
torch.sum()
torch.sum(input, dtype=None) → Tensor
返回input
张量中所有元素的总和。
Parameters:
- 输入 (Tensor) - 输入张量
- dtype (
torch.dtype
,可选) - 返回张量的所需数据类型。如果指定,则在执行操作之前将输入张量转换为dtype
。这对于防止数据类型溢出很有用。默认值:无。
Example:
>>> a = torch.randn(1, 3)
>>> a
tensor([[ 0.1133, -0.9567, 0.2958]])
>>> torch.sum(a)
tensor(-0.5475)
torch.sum(input, dim, keepdim=False, dtype=None) → Tensor
返回给定维dim
中input
张量的每一行的总和。如果dim
是维度列表,请减少所有维度。
If keepdim
is True
, the output tensor is of the same size as input
except in the dimension(s) dim
where it is of size 1. Otherwise, dim
is squeezed (see torch.squeeze()
), resulting in the output tensor having 1 (or len(dim)
) fewer dimension(s).
Parameters:
- 输入 (Tensor) - 输入张量
- 昏暗 (int或 元组python:整数) - 要减少的维度或维度
- keepdim (bool) - 输出张量是否保留
dim
- dtype (
torch.dtype
,可选) - 返回张量的所需数据类型。如果指定,则在执行操作之前将输入张量转换为dtype
。这对于防止数据类型溢出很有用。默认值:无。
Example:
>>> a = torch.randn(4, 4)
>>> a
tensor([[ 0.0569, -0.2475, 0.0737, -0.3429],
[-0.2993, 0.9138, 0.9337, -1.6864],
[ 0.1132, 0.7892, -0.1003, 0.5688],
[ 0.3637, -0.9906, -0.4752, -1.5197]])
>>> torch.sum(a, 1)
tensor([-0.4598, -0.1381, 1.3708, -2.6217])
>>> b = torch.arange(4 * 5 * 6).view(4, 5, 6)
>>> torch.sum(b, (2, 1))
tensor([ 435., 1335., 2235., 3135.])
torch.unique(input, sorted=False, return_inverse=False, dim=None)
返回输入张量的唯一标量元素作为1-D张量。
Parameters:
- 输入 (Tensor) - 输入张量
- 排序 (bool) - 是否在返回作为输出之前按升序对唯一元素进行排序。
- return_inverse (bool) - 是否还返回原始输入中元素在返回的唯一列表中结束的索引。
- dim (int) - 应用唯一的维度。如果是
None
,则返回展平输入的唯一值。默认值:None
|返回:|包含张量的张量或元组
> * 输出 (Tensor ):唯一标量元素的输出列表。 > * inverse_indices (Tensor ):(可选)如果return_inverse
为True,将会有第二个返回的张量(与输入相同的形状),表示原始元素的索引输入映射到输出中;否则,此函数只返回单个张量。
返回类型: | (Tensor , Tensor (可选)) |
---|---|
Example:
>>> output = torch.unique(torch.tensor([1, 3, 2, 3], dtype=torch.long))
>>> output
tensor([ 2, 3, 1])
>>> output, inverse_indices = torch.unique(
torch.tensor([1, 3, 2, 3], dtype=torch.long), sorted=True, return_inverse=True)
>>> output
tensor([ 1, 2, 3])
>>> inverse_indices
tensor([ 0, 2, 1, 2])
>>> output, inverse_indices = torch.unique(
torch.tensor([[1, 3], [2, 3]], dtype=torch.long), sorted=True, return_inverse=True)
>>> output
tensor([ 1, 2, 3])
>>> inverse_indices
tensor([[ 0, 2],
[ 1, 2]])
torch.var()
torch.var(input, unbiased=True) → Tensor
返回input
张量中所有元素的方差。
如果unbiased
是False
,则通过偏差估计器计算方差。否则,将使用贝塞尔的修正。
Parameters:
Example:
>>> a = torch.randn(1, 3)
>>> a
tensor([[-0.3425, -1.2636, -0.4864]])
>>> torch.var(a)
tensor(0.2455)
torch.var(input, dim, keepdim=False, unbiased=True, out=None) → Tensor
返回给定维dim
中input
张量的每一行的方差。
If keepdim
is True
, the output tensors are of the same size as input
except in the dimension dim
where they are of size 1. Otherwise, dim
is squeezed (see torch.squeeze()
), resulting in the outputs tensor having 1 fewer dimension than input
.
If unbiased
is False
, then the variance will be calculated via the biased estimator. Otherwise, Bessel's correction will be used.
Parameters:
- 输入 (Tensor) - 输入张量
- 昏暗 (int) - 减少的维度
- keepdim (bool) - 输出张量是否保留
dim
- 无偏 (bool) - 是否使用无偏估计
- out (Tensor, 任选) - 输出张量
Example:
>>> a = torch.randn(4, 4)
>>> a
tensor([[-0.3567, 1.7385, -1.3042, 0.7423],
[ 1.3436, -0.1015, -0.9834, -0.8438],
[ 0.6056, 0.1089, -0.3112, -1.4085],
[-0.7700, 0.6074, -0.1469, 0.7777]])
>>> torch.var(a, 1)
tensor([ 1.7444, 1.1363, 0.7356, 0.5112])