shuffle_channel

  • paddle.fluid.layers.shuffle_channel(x, group, name=None)[源代码]

该OP将输入 x 的通道混洗重排。 它将每个组中的输入通道分成 group 个子组,并通过逐一从每个子组中选择元素来获得新的顺序。

请参阅 https://arxiv.org/pdf/1707.01083.pdf

  1. 输入一个形为 (N, C, H, W) 4-D tensor:
  2.  
  3. input.shape = (1, 4, 2, 2)
  4. input.data =[[[[0.1, 0.2],
  5. [0.2, 0.3]],
  6.  
  7. [[0.3, 0.4],
  8. [0.4, 0.5]],
  9.  
  10. [[0.5, 0.6],
  11. [0.6, 0.7]],
  12.  
  13. [[0.7, 0.8],
  14. [0.8, 0.9]]]]
  15.  
  16. 指定组数 group: 2
  17. 可得到与输入同形的输出 4-D tensor:
  18.  
  19. out.shape = (1, 4, 2, 2)
  20. out.data = [[[[0.1, 0.2],
  21. [0.2, 0.3]],
  22.  
  23. [[0.5, 0.6],
  24. [0.6, 0.7]],
  25.  
  26. [[0.3, 0.4],
  27. [0.4, 0.5]],
  28.  
  29. [[0.7, 0.8],
  30. [0.8, 0.9]]]]
  • 参数:
    • x (Variable) – 输入Tensor。 维度为[N,C,H,W]的4-D Tensor。
    • group (int) – 表示子组的数目,它应该整除通道数。

返回:一个形状和类型与输入相同的Tensor。

返回类型:Variable

代码示例:

  1. import paddle.fluid as fluid
  2. input = fluid.layers.data(name='input', shape=[4,2,2], dtype='float32')
  3. out = fluid.layers.shuffle_channel(x=input, group=2)