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变量,否则必须在 reduce_all - 图1 范围内。如果 reduce_all - 图2 ,则维度将减小为 reduce_all - 图3 。默认值为None。
    • keep_dim (bool)— 是否在输出Tensor中保留减小的维度。如 keep_dim 为true,否则结果张量的维度将比输入张量小,默认值为False。
    • name (str, 可选)— 这一层的名称。如果设置为None,则将自动命名这一层。默认值为None。

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

返回类型:Variable,数据类型为bool类型。

代码示例

  1. import paddle.fluid as fluid
  2. import paddle.fluid.layers as layers
  3. import numpy as np
  4.  
  5. # x是一个布尔型Tensor,元素如下:
  6. # [[True, False]
  7. # [True, True]]
  8. x = layers.assign(np.array([[1, 0], [1, 1]], dtype='int32'))
  9. x = layers.cast(x, 'bool')
  10.  
  11. out = layers.reduce_all(x) # False
  12. out = layers.reduce_all(x, dim=0) # [True, False]
  13. out = layers.reduce_all(x, dim=-1) # [False, True]
  14. # keep_dim=False, x.shape=(2,2), out.shape=(2,)
  15.  
  16. out = layers.reduce_all(x, dim=1, keep_dim=True) # [[False], [True]]
  17. # keep_dim=True, x.shape=(2,2), out.shape=(2,1)