spaceToBatchND function
This operation divides "spatial" dimensions 1, ..., M of the input into a grid of blocks of shape block_shape,
and interleaves these blocks with the "batch" dimension
such that in the output, the spatial dimensions 1, ..., M correspond to the position within the grid,
and the batch dimension combines both the position within a spatial block and the original batch position.
Prior to division into blocks, the spatial dimensions of the input are optionally zero padded according to paddings.
See below for a precise description.
Args:
- input: A variable. must be 4-D with NC4HW4 format. N-D with shape input_shape =
batch+ spatial_shape + remaining_shape, where spatial_shape has M dimensions. - block_shape: A variable. Must be one of the following types: int32, int64. 1-D with shape
M, all values must be >= 1. - paddings: A variable. Must be one of the following types: int32, int64. 2-D with shape
M, 2, all values must be >= 0. paddingsi=pad_start, pad_endspecifies the padding for input dimension i + 1, which corresponds to spatial dimension i. It is required that block_shapeidivides input_shapei + 1+ pad_start + pad_end.
Returns:
- A variable. Has the same type as input.
Implementation
VARP spaceToBatchND(VARP input, VARP blockShape, VARP paddings) =>
VARP.fromPointer(C.mnn_expr_SpaceToBatchND(input.ptr, blockShape.ptr, paddings.ptr));