flujo tensor:: operaciones:: Lote al espacioND
#include <array_ops.h>BatchToSpace para tensores ND de tipo T.
Resumen
Esta operación reforma la dimensión "lote" 0 en M + 1 dimensiones de forma block_shape + [batch] , entrelaza estos bloques nuevamente 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 el resultado. Esto es lo contrario de SpaceToBatch. Consulte a continuación para obtener una descripción precisa.
Argumentos:
- alcance: un objeto de alcance
- entrada: ND con forma
input_shape = [batch] + spatial_shape + remaining_shape, donde forma_espacial 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 equivale a los siguientes pasos:
- Transformar
inputparareshapedla forma: [block_shape[0], ..., block_shape[M-1], lote / prod(block_shape), input_shape[1], ..., input_shape[N-1]] - Permutar dimensiones de
reshapedpara producir formapermuted[batch / prod(block_shape),input_shape[1], block_shape[0], ..., input_shape[M], block_shape[M-1],input_shape[M+1], ..., forma_entrada[N-1]] - Reforma
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], .. ., forma_entrada[N-1]] - Recorte el inicio y el final de las dimensiones
[1, ..., M]dereshaped_permutedsegún loscropspara producir la salida de forma: [batch / prod(block_shape),input_shape[1] * block_shape[0] - crop[0, 0] - cultivos[0,1], ..., forma_entrada[M] * forma_bloque[M-1] - cultivos[M-1,0] - cultivos[M-1,1],forma_entrada[M+1] , ..., forma_entrada[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
Lote al espacioND
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