tensorflow :: operaciones :: BatchToSpaceND
#include <array_ops.h>BatchToSpace para tensores ND de tipo T.
Resumen
Esta operación transforma la dimensión de "lote" 0 en M + 1 dimensiones de forma block_shape + [batch] , intercala estos bloques de nuevo 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 los crops para producir el resultado. Este es el reverso de SpaceToBatch. Consulte a continuación para obtener una descripción precisa.
Argumentos:
- alcance: un objeto de alcance
- input: ND con forma
input_shape = [batch] + spatial_shape + remaining_shape, donde espacial_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 cultivar 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:
- Reforma de la
inputparareshapedforma: [block_shape [0], ..., block_shape [M-1], batch / prod (block_shape), input_shape [1], ..., input_shape [N-1]] - Permutar dimensiones de
reshapedpara producirpermutedde 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]] - Remodelación
permutedpara producirreshaped_permutedde forma [lote / prod (forma_bloque), forma_entrada [1] * forma_bloque [0], ..., forma_entrada [M] * forma_bloque [M-1], forma_entrada [M + 1], .. ., input_shape [N-1]] - Recorta el inicio y el final de las dimensiones
[1, ..., M]dereshaped_permutedsegún loscropspara producir el resultado de la forma: [lote / prod (forma_bloque), entrada_forma [1] * forma_bloque [0] - cultivos [0, 0] - cultivos [0,1], ..., input_shape [M] * block_shape [M-1] - cultivos [M-1,0] - cultivos [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 block_shape = [2, 2] 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 block_shape = [2, 2] 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 publicas | |
|---|---|
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 publicas
BatchToSpaceND
BatchToSpaceND( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input block_shape, ::tensorflow::Input crops )
nodo
::tensorflow::Node * node() const
operador :: tensorflow :: Entrada
operator::tensorflow::Input() const
operador :: tensorflow :: Salida
operator::tensorflow::Output() const