maxframe.tensor.sum#

maxframe.tensor.sum(a, axis=None, dtype=None, out=None, keepdims=None)[源代码]#

沿给定轴对张量元素求和。

参数:
  • a (array_like) -- 要求和的元素。

  • axis (None or int or tuple of ints, optional) -- 执行求和操作的轴。默认值 axis=None 将对输入张量的所有元素求和。如果 axis 是负数,则从最后一个轴开始计数。如果 axis 是一个整数元组,则对元组中指定的所有轴执行求和操作,而不是单个轴或所有轴。

  • dtype (dtype, optional) -- 返回张量的类型以及用于累加元素的累加器的类型。默认使用 a 的 dtype,除非 a 的整数类型精度低于默认平台整数类型。在这种情况下,如果 a 是有符号的,则使用平台整数类型;如果 a 是无符号的,则使用与平台整数精度相同的无符号整数类型。

  • out (Tensor, optional) -- 用于放置结果的替代输出张量。它必须与预期输出具有相同的形状,但输出值的类型在必要时会被转换。

  • keepdims (bool, optional) -- 如果设置为 True,则在结果中保留被规约的轴,其大小为 1。使用此选项,结果将能够与输入张量正确广播。如果传递的是默认值,则 keepdims 不会传递给 Tensor 子类的 sum 方法,但任何非默认值都会传递。如果子类的 sum 方法未实现 keepdims,则会引发异常。

返回:

sum_along_axis -- 与 a 具有相同形状的数组,但指定的轴已被移除。如果 a 是 0 维张量,或者 axis 为 None,则返回一个标量。如果指定了输出数组,则返回对 out 的引用。

返回类型:

Tensor

参见

Tensor.sum

等效方法。

cumsum

张量元素的累积和。

trapz

使用复合梯形法则对张量值进行积分。

mean, average

备注

使用整数类型时,运算是模运算,不会因溢出而引发错误。

空数组的和是中性元素 0:

>>> import maxframe.tensor as mt
>>> mt.sum([]).execute()
0.0

示例

>>> mt.sum([0.5, 1.5]).execute()
2.0
>>> mt.sum([0.5, 0.7, 0.2, 1.5], dtype=mt.int32).execute()
1
>>> mt.sum([[0, 1], [0, 5]]).execute()
6
>>> mt.sum([[0, 1], [0, 5]], axis=0).execute()
array([0, 6])
>>> mt.sum([[0, 1], [0, 5]], axis=1).execute()
array([1, 5])

如果累加器太小,则会发生溢出:

>>> mt.ones(128, dtype=mt.int8).sum(dtype=mt.int8).execute()
-128