This class implements a layer that splits images into square blocks of size k x k x Ch
and writes the contents of these blocks to the corresponding pixels (1 x 1 x Ch*k*k
) of the output images in channel-last ordering.
As a result image of size H x W x Ch
is transformed into images of size H/k x W/k x Ch*k*k
.
This operation is the inverse function of CDepthToSpaceLayer.
void SetBlockSize( int blockSize );
Sets the size of the blocks (k
from layer description). The image size along either dimension should be a multiple of this value. The value should be greater than 1
.
The layer has no trainable parameters.
The single input accepts a blob with the images, of the dimensions:
BatchLength * BatchWidth * ListSize
is equal to the number of imagesHeight
is the image height; should be a multiple ofGetBlockSize()
Width
is the image width; should be a multiple ofGetBlockSize()
Depth
is equal to1
Channels
is the number of channels in the image format
The single output contains a blob with the resulting images, of the dimensions:
BatchLength
is equal to the inputBatchLength
BatchWidth
is equal to the inputBatchWidth
ListSize
is equal to the inputListSize
Height
is equal to the inputHeight / GetBlockSize()
Width
is equal to the inputWidth / GetBlockSize()
Depth
is equal to1
Channels
is equal to the inputChannels * GetBlockSize() * GetBlockSize()
.