BatchToSpaceNd

BatchToSpaceNd public final class

BatchToSpace para tensores ND de tipo T.

Esta operación cambia la forma de la dimensión 0 del "lote" en las dimensiones `M + 1` de la 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 de acuerdo con los "cultivos" para producir el resultado. Este es el reverso de SpaceToBatch. Consulte a continuación para obtener una descripción precisa.

Métodos públicos

Salida <T>
asOutput ()
Devuelve el identificador simbólico de un tensor.
estática <T, U se extiende Número, V se extiende Número> BatchToSpaceNd <T>
crear ( Alcance alcance, operando <T> de entrada, operando <U> blockShape, operando <V> cultivos)
Método de fábrica para crear una clase que envuelva una nueva operación BatchToSpaceNd.
Salida <T>
salida ()

Métodos heredados

Métodos públicos

pública de salida <T> asOutput ()

Devuelve el identificador simbólico de un tensor.

Las entradas a las operaciones de TensorFlow son salidas de otra operación de TensorFlow. Este método se utiliza para obtener un identificador simbólico que representa el cálculo de la entrada.

public static BatchToSpaceNd <T> crear ( Alcance alcance, operando <T> de entrada, operando <U> blockShape, operando <V> cultivos)

Método de fábrica para crear una clase que envuelva una nueva operación BatchToSpaceNd.

Parámetros
alcance alcance actual
aporte ND con forma `input_shape = [batch] + space_shape + left_shape`, donde espacial_shape tiene M dimensiones.
blockShape 1-D con forma `[M]`, todos los valores deben ser> = 1.
cultivos 2-D con forma `[M, 2]`, todos los valores deben ser> = 0. `crop [i] = [crop_start, crop_end]` especifica la cantidad a cultivar de la dimensión de entrada `i + 1`, que corresponde a dimensión espacial `i`. Se requiere que `crop_start [i] + crop_end [i] <= block_shape [i] * input_shape [i + 1]`.

Esta operación es equivalente a los siguientes pasos:

1. Cambiar la forma de `input` a` remodelado` de la forma: [block_shape [0], ..., block_shape [M-1], batch / prod (block_shape), input_shape [1], ..., input_shape [N- 1]]

2. Permutar las dimensiones de "remodelado" para producir "permutado" de 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]]

3. Reforma "permutado" para producir "remodelado_permutado" de forma [lote / prod (block_shape),

input_shape [1] * block_shape [0], ..., input_shape [M] * block_shape [M-1],

input_shape [M + 1], ..., input_shape [N-1]]

4. Recorte el inicio y el final de las dimensiones `[1, ..., M]` de `remodelado_permutado` de acuerdo con` cultivos` para producir el resultado de la forma: [lote / prod (block_shape),

input_shape [1] * block_shape [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 `crop = [[0, 0], [0, 0]]`:

[[[[1]]], [[[2]]], [[[3]]], [[[4]]]]
 
el tensor de salida tiene forma de `[1, 2, 2, 1]` y el valor:
x = [[[[1], [2]], [[3], [4]]]]
 
(2) Para la siguiente entrada de la forma `[4, 1, 1, 3]`, `block_shape = [ 2, 2] `, y` cultivos = [[0, 0], [0, 0]] `:
[[[[1, 2, 3]]], [[[4, 5, 6]]], [[[7, 8, 9]]], [[[10, 11, 12]]]]
 
El tensor de salida tiene forma de` [1, 2, 2, 3] `y el 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 `crop = [[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 de `[1, 4, 4, 1]` y el valor:
x = [[[[1],   [2],  [3],  [4]],
      [[5],   [6],  [7],  [8]],
      [[9],  [10], [11],  [12]],
      [[13], [14], [15],  [16]]]]
 
(4) Para la siguiente entrada de la forma `[8, 1, 3, 1]`, `block_shape = [ 2, 2] `, y` cultivos = [[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 de` [2, 2, 4, 1] `y el valor:
x = [[[[1],   [2],  [3],  [4]],
       [[5],   [6],  [7],  [8]]],
      [[[9],  [10], [11],  [12]],
       [[13], [14], [15],  [16]]]]
 

Devoluciones
  • una nueva instancia de BatchToSpaceNd

pública de salida <T> salida ()