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>