reduce_all

paddle.fluid.layers. reduce_all ( input, dim=None, keep_dim=False, name=None ) [源代码]

该OP是对指定维度上的Tensor元素进行与逻辑(&)计算,并输出相应的计算结果。

参数

  • input (Variable)— 输入变量为多维Tensor或LoDTensor,数据类型需要为bool类型。

  • dim (list | int,可选)— 与逻辑运算的维度。如果为None,则计算所有元素的与逻辑并返回包含单个元素的Tensor变量,否则必须在 \([−rank(input),rank(input))\) 范围内。如果 \(dim [i] <0\),则维度将减小为 \(rank+dim[i]\)。默认值为None。

  • keep_dim (bool)— 是否在输出Tensor中保留减小的维度。如 keep_dim 为true,否则结果张量的维度将比输入张量小,默认值为False。

  • name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。

返回

在指定dim上进行与逻辑计算的Tensor,数据类型为bool类型。

返回类型

Variable,数据类型为bool类型。

代码示例

import paddle
import paddle.fluid as fluid
import paddle.fluid.layers as layers
import numpy as np

# x is a bool Tensor variable with following elements:
#    [[True, False]
#     [True, True]]
x = fluid.layers.assign(np.array([[1, 0], [1, 1]], dtype='int32'))
x = fluid.layers.cast(x, 'bool')

out = fluid.layers.reduce_all(x)  # False
out = fluid.layers.reduce_all(x, dim=0)  # [True, False]
out = fluid.layers.reduce_all(x, dim=-1)  # [False, True]
# keep_dim=False, x.shape=(2,2), out.shape=(2,)

out = fluid.layers.reduce_all(x, dim=1, keep_dim=True)  # [[False], [True]]
# keep_dim=True, x.shape=(2,2), out.shape=(2,1)