masked_select

  • paddle.fluid.layers.masked_select(input, mask)

该OP将根据mask Tensor的真值选取输入Tensor元素,并返回一个一维Tensor

  • 参数:
    • input (Variable)- 输入Tensor,数据类型为int32, float32, float64。
    • mask (Variable)- mask Tensor, 数据类型为bool。

返回:根据mask选择后的tensor

返回类型: Variable

示例代码

  1. import paddle.fluid as fluid
  2. import numpy as np
  3. mask_shape = [4,1]
  4. shape = [4,4]
  5. data = np.random.random(mask_shape).astype("float32")
  6. input_data = np.random.randint(5,size=shape).astype("float32")
  7. mask_data = data > 0.5
  8.  
  9. # print(input_data)
  10. # [[0.38972723 0.36218056 0.7892614 0.50122297]
  11. # [0.14408113 0.85540855 0.30984417 0.7577004 ]
  12. # [0.97263193 0.5248062 0.07655851 0.75549215]
  13. # [0.26214206 0.32359877 0.6314582 0.2128865 ]]
  14.  
  15. # print(mask_data)
  16. # [[ True]
  17. # [ True]
  18. # [False]
  19. # [ True]]
  20.  
  21. input = fluid.data(name="input",shape=[4,4],dtype="float32")
  22. mask = fluid.data(name="mask",shape=[4,1],dtype="bool")
  23. result = fluid.layers.masked_select(input=input, mask=mask)
  24. place = fluid.CPUPlace()
  25. exe = fluid.Executor(place)
  26. start = fluid.default_startup_program()
  27. main = fluid.default_main_program()
  28. exe.run(start)
  29. masked_select_result= exe.run(main, feed={'input':input_data, 'mask':mask_data}, fetch_list=[result])
  30. # print(masked_select_result)
  31. # [0.38972723 0.36218056 0.7892614 0.50122297 0.14408113 0.85540855
  32. # 0.30984417 0.7577004 0.26214206 0.32359877 0.6314582 0.2128865 ]