ShuffleChannels

Versioned name : ShuffleChannels-1

Name : ShuffleChannels

Category : Data movement

Short description : ShuffleChannels permutes data in the channel dimension of the input tensor.

Attributes :

  • axis

    • Description : axis specifies the index of a channel dimension.

    • Range of values : an integer number in the range [-4, 3]

    • Type : int

    • Default value : 1

    • Required : No

  • group

    • Description : group specifies the number of groups to split the channel dimension into. This number must evenly divide the channel dimension size.

    • Range of values : a positive integer

    • Type : int

    • Default value : 1

    • Required : No

Inputs :

  • 1 : 4D input tensor of any supported data type. Required.

Outputs :

  • 1 : 4D input tensor with shape and element type as for the input tensor.

Mathematical Formulation

The operation is the equivalent with the following transformation of the input tensor x of shape [N, C, H, W] :

x' = reshape(x, [N, group, C / group, H * W])
x'' = transpose(x', [0, 2, 1, 3])
y = reshape(x'', [N, C, H, W])

where group is the layer parameter described above and the axis = 1.

Example

<layer ... type="ShuffleChannels" ...>
    <data group="3" axis="1"/>
    <input>
        <port id="0">
            <dim>5</dim>
            <dim>12</dim>
            <dim>200</dim>
            <dim>400</dim>
        </port>
    </input>
    <output>
        <port id="1">
            <dim>5</dim>
            <dim>12</dim>
            <dim>200</dim>
            <dim>400</dim>
        </port>
    </output>
</layer>