tensorflow:: ops:: BatchToSpaceND
#include <array_ops.h>BatchToSpace para tensores ND de tipo T.
Resumen
Esta operación transforma la dimensión 0 del lote en M + 1 dimensiones con forma block_shape + [batch] , intercalando estos bloques en la cuadrícula definida por las dimensiones espaciales [1, ..., M] , para obtener un resultado con el mismo rango que la entrada. Las dimensiones espaciales de este resultado intermedio se recortan opcionalmente según crops para producir la salida. Esto es lo contrario de SpaceToBatch. Consulte a continuación una descripción detallada.
Argumentos:
- ámbito: Un objeto de ámbito
- entrada: ND con forma
input_shape = [batch] + spatial_shape + remaining_shape, donde spatial_shape tiene M dimensiones. - block_shape: 1-D con forma
[M], todos los valores deben ser >= 1. - cultivos: 2-D con forma
[M, 2], todos los valores deben ser >= 0.crops[i] = [crop_start, crop_end]especifica la cantidad a recortar de la dimensión de entradai + 1, que corresponde a la dimensión espaciali. Se requiere quecrop_start[i] + crop_end[i] <= block_shape[i] * input_shape[i + 1].
Esta operación es equivalente a los siguientes pasos:
- Remodelar
inputa una formareshaped: [block_shape[0], ..., block_shape[M-1], batch / prod(block_shape), input_shape[1], ..., input_shape[N-1]] - Permutar las dimensiones de los
reshapedpara producirpermutedde la forma [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]] - Remodelar
permutedpara producirreshaped_permutedde forma [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]] - Recorta el inicio y el final de las dimensiones
[1, ..., M]dereshaped_permutedsegúncropspara producir la salida de forma: [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]]
Algunos ejemplos:
(1) Para la siguiente entrada de forma [4, 1, 1, 1] , block_shape = [2, 2] y crops = [[0, 0], [0, 0]] :
[[[[1]]], [[[2]]], [[[3]]], [[[4]]]]
El tensor de salida tiene forma [1, 2, 2, 1] y valor:
x = [[[[1], [2]], [[3], [4]]]]
(2) Para la siguiente entrada de forma [4, 1, 1, 3] , block_shape = [2, 2] y crops = [[0, 0], [0, 0]] :
[[[[1, 2, 3]]], [[[4, 5, 6]]], [[[7, 8, 9]]], [[[10, 11, 12]]]]
El tensor de salida tiene forma [1, 2, 2, 3] y valor:
x = [[[[1, 2, 3], [4, 5, 6]],
[[7, 8, 9], [10, 11, 12]]]] (3) Para la siguiente entrada de forma [4, 2, 2, 1] , block_shape = [2, 2] y crops = [[0, 0], [0, 0]] :
x = [[[[1], [3]], [[9], [11]]],
[[[2], [4]], [[10], [12]]],
[[[5], [7]], [[13], [15]]],
[[[6], [8]], [[14], [16]]]] El tensor de salida tiene forma [1, 4, 4, 1] y valor:
x = [[[[1], [2], [3], [4]],
[[5], [6], [7], [8]],
[[9], [10], [11], [12]],
[[13], [14], [15], [16]]]] (4) Para la siguiente entrada de forma [8, 1, 3, 1] , block_shape = [2, 2] y crops = [[0, 0], [2, 0]] :
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]]]] El tensor de salida tiene forma [2, 2, 4, 1] y valor:
x = [[[[1], [2], [3], [4]],
[[5], [6], [7], [8]]],
[[[9], [10], [11], [12]],
[[13], [14], [15], [16]]]]Devoluciones:
-
Output: El tensor de salida.
Constructores y destructores | |
|---|---|
BatchToSpaceND (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input block_shape, :: tensorflow::Input crops) |
Atributos públicos | |
|---|---|
operation | |
output | |
Funciones públicas | |
|---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const | |
Atributos públicos
operación
Operation operation
producción
::tensorflow::Output output
Funciones públicas
BatchToSpaceND
BatchToSpaceND( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input block_shape, ::tensorflow::Input crops )
nodo
::tensorflow::Node * node() const
operador::tensorflow::Input
operator::tensorflow::Input() const
operador::tensorflow::Salida
operator::tensorflow::Output() const