BatchToSpace for N-D tensors of type T.

tf.batch_to_space_nd( input, block_shape, crops, name=None )

This operation reshapes the "batch" dimension 0 into `M + 1`

dimensions of shape `block_shape + [batch]`

, interleaves these blocks back into the grid defined by the spatial dimensions `[1, ..., M]`

, to obtain a result with the same rank as the input. The spatial dimensions of this intermediate result are then optionally cropped according to `crops`

to produce the output. This is the reverse of SpaceToBatch. See below for a precise description.

Args | |
---|---|

`input` | A `Tensor` . N-D with shape `input_shape = [batch] + spatial_shape + remaining_shape` , where spatial_shape has M dimensions. |

`block_shape` | A `Tensor` . Must be one of the following types: `int32` , `int64` . 1-D with shape `[M]` , all values must be >= 1. |

`crops` | A `Tensor` . Must be one of the following types: `int32` , `int64` . 2-D with shape `[M, 2]` , all values must be >= 0. `crops[i] = [crop_start, crop_end]` specifies the amount to crop from input dimension `i + 1` , which corresponds to spatial dimension `i` . It is required that `crop_start[i] + crop_end[i] <= block_shape[i] * input_shape[i + 1]` . This operation is equivalent to the following steps: Reshape `input` to`reshaped` of shape: [block_shape[0], ..., block_shape[M-1], batch / prod(block_shape), input_shape[1], ..., input_shape[N-1]]Permute dimensions of `reshaped` to produce`permuted` of shape [batch / prod(block_shape),
input_shape[1], block_shape[0], ..., input_shape[M], block_shape[M-1], input_shape[M+1], ..., input_shape[N-1]] - Reshape
`permuted` to produce`reshaped_permuted` of shape [batch / prod(block_shape),
input_shape[1] * block_shape[0], ..., input_shape[M] * block_shape[M-1], input_shape[M+1], ..., input_shape[N-1]] - Crop the start and end of dimensions
`[1, ..., M]` of`reshaped_permuted` according to`crops` to produce the output of shape: [batch / prod(block_shape),
input_shape[1] * block_shape[0] - crops[0,0] - crops[0,1], ..., input_shape[M] * block_shape[M-1] - crops[M-1,0] - crops[M-1,1], input_shape[M+1], ..., input_shape[N-1]] Some examples: (1) For the following input of shape [[[[1]]], [[[2]]], [[[3]]], [[[4]]]] The output tensor has shape x = [[[[1], [2]], [[3], [4]]]] (2) For the following input of shape [[[[1, 2, 3]]], [[[4, 5, 6]]], [[[7, 8, 9]]], [[[10, 11, 12]]]] The output tensor has shape x = [[[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]] (3) For the following input of shape x = [[[[1], [3]], [[9], [11]]], [[[2], [4]], [[10], [12]]], [[[5], [7]], [[13], [15]]], [[[6], [8]], [[14], [16]]]] The output tensor has shape x = [[[[1], [2], [3], [4]], [[5], [6], [7], [8]], [[9], [10], [11], [12]], [[13], [14], [15], [16]]]] (4) For the following input of shape x = [[[[0], [1], [3]]], [[[0], [9], [11]]], [[[0], [2], [4]]], [[[0], [10], [12]]], [[[0], [5], [7]]], [[[0], [13], [15]]], [[[0], [6], [8]]], [[[0], [14], [16]]]] The output tensor has shape x = [[[[1], [2], [3], [4]], [[5], [6], [7], [8]]], [[[9], [10], [11], [12]], [[13], [14], [15], [16]]]] |

`name` | A name for the operation (optional). |

Returns | |
---|---|

A `Tensor` . Has the same type as `input` . |

© 2020 The TensorFlow Authors. All rights reserved.

Licensed under the Creative Commons Attribution License 3.0.

Code samples licensed under the Apache 2.0 License.

https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/batch_to_space_nd