Pytorch学习之torch----Reduction Ops

1. torch.cumprod(input, dim, out=None)

说明: 返回输入沿指定维度的累积积。如果输入是一个N元向量,则结果也是一个N元向量,第i个输出元素值为 $$y_{i} = x_{1} * x_{2} * … * x_{i}$$

参数:

  • input(Tensor) —- 输入张量
  • dim(int) —- 累积积操作的维度
  • out(Tensor,可选) —- 结果张量
>>> import numpy as np
>>> import torch
>>> a = np.array([1, 2, 3, 4, 5])
>>> b = torch.from_numpy(a)
>>> b
tensor([1, 2, 3, 4, 5], dtype=torch.int32)
>>> ret = torch.cumprod(b, dim=0)
>>> ret
tensor([  1,   2,   6,  24, 120])
>>> b[2] = 0
>>> b
tensor([1, 2, 0, 4, 5], dtype=torch.int32)
>>> ret1 = torch.cumprod(b, dim=0)
>>> ret1
tensor([1, 2, 0, 0, 0])

2. torch.cumsum(input, dim, out=None)

说明: 返回输入沿指定维度的累积和。例如,如果输入是一个N元向量,则结果也是一个N元向量,第i个输出元素的值为$$y_{i} = x_{1} + x_{2} + … + x_{i}$$

参数:

  • input(Tensor) —- 输入张量
  • dim(int) —- 累积和操作的维度
  • out(Tensor,可选的) —- 结果张量
>>> a = np.array([1, 2, 3, 4, 5])
>>> b = torch.from_numpy(a)
>>> ret = torch.cumsum(b, dim=0)
>>> ret
tensor([ 1,  3,  6, 10, 15])

3. torch.dist(input, other, p=2, out=None)

说明: 返回(input - other) 的p范数

参数:

  • input(Tensor) —- 左侧输入张量
  • other(Tensor) —- 右侧输入张量
  • p(float,可选的) —- 所计算的范数
  • out(Tensor,可选的) —- 结果张量
>>> x = torch.randn(4)
>>> x
tensor([0.1559, 0.7725, 0.8706, 0.3684])
>>> y = torch.randn(4)
>>> y
tensor([ 1.1464,  0.4444,  1.7968, -1.3197])
>>> torch.dist(x, y, 2)
tensor(2.1900)

4. torch.mean(input)

说明: 返回输入张量所有元素的均值

参数:

  • input(Tensor) —- 输入张量
>>> a = torch.randn(1, 3)
>>> a
tensor([[-2.0543,  1.6074,  0.2915]])
>>> torch.mean(a)
tensor(-0.0518)

5. torch.mean(input, dim, out=None)

说明: 返回输入张量给定维度dim上每行的均值。

参数:

  • inptu(Tensor) —- 输入张量
  • dim(int) —- 操作的维度
  • out(Tensor,可选的) —- 结果张量
>>> a
tensor([[ 1.2351,  0.7531, -1.2863],
        [-0.8551, -2.2716,  1.0863],
        [ 0.0343,  1.9529,  1.4611],
        [ 1.9935,  0.5430, -0.1580]])
>>> torch.mean(a, 1)
tensor([ 0.2340, -0.6801,  1.1494,  0.7928])
>>> torch.mean(a, 0)
tensor([0.6019, 0.2444, 0.2758])

6. torch.median(input, dim=-1, values=None, indices=None)

说明: 返回输入张量给定维度每行中的中位数,同时返回一个包含中位数的索引的LongTensor。dim值默认为输入张量的最后一维。
注意: 这个函数没有在torch.cuda.Tensor中定义

参数:

  • input(Tensor) —- 输入张量
  • dim(int) —- 缩减的维度
  • values(Tensor,可选的) —- 结果张量
  • indices(Tensor,可选的) —- 返回的索引结果张量
>>> a = torch.randn(4, 5)
>>> a
tensor([[-0.2479, -0.4734,  0.1368,  0.9601,  2.9435],
        [ 0.3210,  0.8147,  0.3052, -0.6380,  0.0879],
        [ 1.9500,  0.0926,  0.6948, -0.9723, -0.2437],
        [-0.7056, -0.4905, -0.2469,  0.3753,  1.6451]])
>>> torch.median(a, 1)
torch.return_types.median(
values=tensor([ 0.1368,  0.3052,  0.0926, -0.2469]),
indices=tensor([2, 2, 1, 2]))

7. torch.mode(input, dim=-1, values=None, indices=None)

说明: 返回给定维dim上,每行的众数值,同时返回一个LongTensor,包含众数的索引。dim默认为输入张量的最后一维。
参数:

  • input(Tensor) —- 输入张量
  • dim(int) —- 缩减的维度
  • values(Tensor,可选的) —- 结果的张量
  • indices(Tensor,可选的) —- 返回的索引张量
>>> a = torch.randn(5, 5)
>>> a
tensor([[-1.2427, -0.2035,  0.0828, -0.9490,  0.8610],
        [-0.5330, -1.0207,  1.2805, -0.2771, -0.1151],
        [-1.2495,  0.6887, -0.1247,  1.3126, -0.4973],
        [ 1.3097,  0.1821, -0.9910, -0.0591, -2.0153],
        [-1.0525, -0.0337,  1.2929,  1.4164,  1.3975]])
>>> torch.mode(a, 1)
torch.return_types.mode(
values=tensor([-1.2427, -1.0207, -1.2495, -2.0153, -1.0525]),
indices=tensor([0, 1, 0, 4, 0]))

8. torch.norm(input, p=2)

说明: 返回输入张量input的p范数

参数:

  • input(Tensor) —- 输入张量
  • p(float,可选的) —- 范数计算中的幂指数值
>>> a = torch.randn(1, 3)
>>> a
tensor([[-1.5397, -1.4304, -0.7689]])
>>> torch.norm(a, 3)
tensor(1.9158)

9. torch.norm(input, p, dim, out=None)

说明: 返回输入张量给定维度dim上每行的p范数。
参数:

  • input(Tensor) —- 输入张量
  • p(float) —- 范数计算中的幂指数值
  • dim(int) —- 缩减的维度
  • out(Tenosr,可选的) —- 结果张量
>>> a = torch.randn(4, 2)
>>> a
tensor([[-0.3436, -0.6034],
        [-0.2127, -0.0089],
        [ 1.7678, -1.0787],
        [-0.9961, -0.2598]])
>>> torch.norm(a, 2, 1)
tensor([0.6944, 0.2129, 2.0709, 1.0294])
>>> torch.norm(a, 0, 1)
tensor([2., 2., 2., 2.])

10. torch.prod(input)

说明: 返回输入张量input所有元素的积

参数:

  • input(Tensor) —- 输入张量
>>> a = torch.Tensor([1, 2, 3])
>>> torch.prod(a)
tensor(6.)

11. torch.prod(input, dim, out=None)

说明: 返回输入张量给定维度上每行的积。
参数:

  • input(Tenosr) —- 输入张量
  • dim(int) —- 缩减的维度
  • out(Tensor,可选的) —- 结果张量
>>> a = torch.randn(4, 2)
>>> a
tensor([[ 0.0593,  0.3449],
        [-0.0491,  0.2711],
        [-0.4155, -1.1968],
        [-0.6646, -0.9474]])
>>> torch.prod(a, 1)
tensor([ 0.0205, -0.0133,  0.4972,  0.6296])
>>> torch.prod(a, 0)
tensor([-0.0008,  0.1060])

12. torch.std(input)

说明: 返回输入张量input所有元素的标准差
参数:

  • inut(Tensor) —- 输入张量
>>> a = torch.randn(1, 3)
>>> a
tensor([[-0.2022,  1.9407, -0.1263]])
>>> torch.std(a)
tensor(1.2159)

13. torch.std(input, dim, out=None)

说明: 返回输入张量给定维度上每行的标准差。
参数:

  • input(Tensor) —- 输入张量
  • dim(int)
>>> a = torch.randn(1, 3)
>>> a
tensor([[ 0.3646,  0.9681, -0.7199]])
>>> torch.std(a)
tensor(0.8554)

14. torch.std(input, dim, out=None)

说明: 返回输入给定维度上每行的标准差。

参数:

  • input(Tensor) —- 输入张量
  • dim(int) —- 缩减的维度
  • out(Tensor,可选的) —- 结果张量
>>> a = torch.randn(4, 4)
>>> a
tensor([[ 0.4083, -2.0872, -2.7175,  0.4151],
        [-0.1804, -1.9027, -0.6310,  0.3519],
        [-0.1215,  0.5891,  0.1468, -0.2249],
        [ 1.3558,  1.2970,  0.1988,  0.1279]])
>>> torch.std(a, dim=1)
tensor([1.6449, 0.9626, 0.3633, 0.6725])

15. torch.sum(input)

说明: 返回输入张量input所有元素的和。

参数:

  • input(Tensor) —- 输入张量
>>> a = torch.randn(1, 3)
>>> a
tensor([[-1.7710, -0.9921, -0.2817]])
>>> torch.sum(a)
tensor(-3.0449)

16. torch.sum(input, dim, out=None)

说明: 返回输入张量给定维度上每行的和,

参数:

  • input(Tensor) —- 输入张量
  • dim(int) —- 缩减的维度
  • out(Tensor, 可选的) —- 结果张量
>>> a = torch.randn(4, 4)
>>> a
tensor([[-0.6091, -0.5861, -0.2564, -0.3686],
        [-0.7146,  0.7276, -0.7998,  0.5817],
        [ 0.7700, -0.7373,  0.1708, -0.0295],
        [ 2.2606,  1.9379, -0.7269,  0.7523]])
>>> torch.sum(a, 1)
tensor([-1.8202, -0.2051,  0.1741,  4.2239])
>>> torch.sum(a, 0)
tensor([ 1.7069,  1.3422, -1.6123,  0.9359])

17. torch.var(input)

说明: 返回输入张量所有元素的方差

参数:

  • input(Tensor) – 输入张量
>>> a = torch.randn(1, 4)
>>> a
tensor([[-0.7134, -1.1119,  1.0638, -0.0858]])
>>> torch.var(a)
tensor(0.9016)

18. torch.var(input, dim, out=None)

说明: 返回输入张量给定维度上每行的方差

参数:

  • input(Tensor) —- 输入张量
  • dim(int) —- 缩减维度
  • out(Tensor,可选的) —- 结果张量
>>> a = torch.randn(4, 4)
>>> a
tensor([[-0.0977, -0.2619, -0.3367, -0.5301],
        [ 0.8751, -0.2703,  1.2129,  0.5508],
        [ 1.1301,  0.6452,  0.5054,  0.3386],
        [ 0.2502,  1.4547,  1.0562,  0.4640]])
>>> torch.var(a, 1)
tensor([0.0322, 0.4036, 0.1161, 0.3031])

   转载规则


《Pytorch学习之torch----Reduction Ops》 G&L 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
Pytorch学习之torch----比较操作 Pytorch学习之torch----比较操作
1. torch.eq(input, other, out=None)说明: 比较元素是否相等,第二个参数可以是一个数,或者是第一个参数同类型形状的张量 参数: input(Tensor) —- 待比较张量 other(Tenosr or
2019-07-14
下一篇 
Pytorch学习之torch----数学操作(三) Pytorch学习之torch----数学操作(三)
1. torch.reciprocal(input, out=None)说明: 返回一个新张量,包含输入input张量每个元素的倒数。参数: input(Tensor) – 输入张量 out(Tensor, 可选) – 输出张量 >>>
2019-06-23
  目录