logical_and

  • paddle.fluid.layers.logical_and(x, y, out=None, name=None)[源代码]

该OP逐元素的对 XY 两LoDTensor/Tensor进行逻辑与运算。

logical_and - 图1

  • 参数:
    • x (Variable)- 逻辑与运算的第一个输入,是一个多维的LoDTensor/Tensor,数据类型只能是bool。
    • y (Variable)- 逻辑与运算的第二个输入,是一个多维的LoDTensor/Tensor,数据类型只能是bool。
    • out (Variable,可选)- 指定算子输出结果的LoDTensor/Tensor,可以是程序中已经创建的任何Variable。默认值为None,此时将创建新的Variable来保存输出结果。
    • name (str,可选)- 该参数供开发人员打印调试信息时使用,具体用法参见 Name ,默认值为None。

返回:与 x 维度相同,数据类型相同的LoDTensor/Tensor。

返回类型:Variable

代码示例:

  1. import paddle.fluid as fluid
  2. import numpy as np
  3.  
  4. # Graph organizing
  5. x = fluid.layers.data(name='x', shape=[2], dtype='bool')
  6. y = fluid.layers.data(name='y', shape=[2], dtype='bool')
  7. res = fluid.layers.logical_and(x=x, y=y)
  8. # The comment lists another available method.
  9. # res = fluid.layers.fill_constant(shape=[2], dtype='bool', value=0)
  10. # fluid.layers.logical_and(x=x, y=y, out=res)
  11.  
  12. # Create an executor using CPU as an example
  13. exe = fluid.Executor(fluid.CPUPlace())
  14. exe.run(fluid.default_startup_program())
  15.  
  16. # Execute
  17. x_i = np.array([[1, 0], [0, 1]]).astype(np.bool)
  18. y_i = np.array([[1, 1], [0, 0]]).astype(np.bool)
  19. res_val, = exe.run(fluid.default_main_program(), feed={'x':x_i, 'y':y_i}, fetch_list=[res])
  20. print(res_val) # [[True, False], [False, False]]