sum¶
- paddle.sparse.sum(x, axis=None, dtype=None, keepdim=False, name=None):
计算给定维度 axis
上稀疏张量 x
元素的和。 输入 x
必须为稀疏压缩格式( SparseCooTensor 或 SparseCsrTensor)。
等式为:
\[out = sum(x, axis, dtype, keepdim)\]
参数¶
x (Tensor) - 输入的 Tensor,数据类型为 bool、float16、float32、float64、int32 或 int64。
axis (int|list|tuple,可选) - 沿着哪些维度进行求和操作。如果为
None
,则对x
的所有元素进行求和并返回一个只有一个元素的 Tensor;否则必须在 \([-rank(x), rank(x))\) 范围内。如果 \(axis[i] < 0\),则要减少的维度是 \(rank + axis[i]\)。dtype (str,可选) - 输出 Tensor 的数据类型。默认值为 None,表示与输入 Tensor x 数据类型一致。
keepdim (bool,可选) - 是否在输出 Tensor 中保留减少的维度。如果为 True,则结果 Tensor 的维数比
x
少一维,否则与x
维数一致。默认值为 False。name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。
返回¶
Tensor
,在指定维度上进行求和运算的 Tensor。如果 x.dtype='bool' 或 x.dtype='int32',则其数据类型为 'int64',否则数据类型与 x 一致。
代码示例¶
>>> import paddle
>>> dense_x = paddle.to_tensor([[-2., 0.], [1., 2.]])
>>> sparse_x = dense_x.to_sparse_coo(1)
>>> out1 = paddle.sparse.sum(sparse_x)
>>> out1
Tensor(shape=[1], dtype=paddle.float32, place=Place(cpu), stop_gradient=True,
indices=[0],
values=1.)
>>> out2 = paddle.sparse.sum(sparse_x, axis=0)
>>> out2
Tensor(shape=[1, 2], dtype=paddle.float32, place=Place(cpu), stop_gradient=True,
indices=[[0]],
values=[[-1., 2.]])
>>> out3 = paddle.sparse.sum(sparse_x, axis=-1)
>>> out3
Tensor(shape=[2], dtype=paddle.float32, place=Place(cpu), stop_gradient=True,
indices=[[0, 1]],
values=[-2., 3.])
>>> out4 = paddle.sparse.sum(sparse_x, axis=1, keepdim=True)
>>> out4
Tensor(shape=[2, 1], dtype=paddle.float32, place=Place(cpu), stop_gradient=True,
indices=[[0, 1]],
values=[[-2.],
[ 3.]])