This class implements a layer that transforms each pixel (1 x 1 x Ch
) of 2-dimensional images into square blocks of size k x k x Ch/(k*k)
.
The elements of pixel are interpreted as an image of size k x k x Ch/(k*k)
in channel-last ordering.
As a result H x W x Ch
image is transformed into H*k x W*k x Ch/(k*k)
image.
This operation is the inverse function of CSpaceToDepthLayer.
void SetBlockSize( int blockSize );
Sets the size of the squares (k
from the layer descrition). The image channels should be a multiple of the square 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 heightWidth
is the image widthDepth
is equal to1
Channels
is the number of channels in the image format; should be a multiple ofGetBlockSize() * GetBlockSize()
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() )
.