Se usó la API de Cloud Translation para traducir esta página.
Switch to English

tf.nn.space_to_depth

TensorFlow 1 versión Ver código fuente en GitHub

SpaceToDepth para tensores de tipo T.

Reorganiza bloques de datos espaciales, en profundidad. Más específicamente, esta op salida una copia del tensor de entrada donde los valores de la height y width dimensiones se mueven a la depth dimensión. El attr block_size indica el tamaño del bloque de entrada.

  • Bloques de tamaño que no se solapan block_size x block size se reordenan en profundidad en cada ubicación.
  • La profundidad del tensor de salida es block_size * block_size * input_depth .
  • Las coordenadas Y, X dentro de cada bloque de la entrada se convierten en el componente de alto orden del índice canal de salida.
  • altura y la anchura del tensor de entrada debe ser divisible por block_size.

Los data_format especifica ATTR la disposición de los tensores de entrada y salida con las siguientes opciones: "NHWC": [ batch, height, width, channels ] "NCHW": [ batch, channels, height, width ] "NCHW_VECT_C": qint8 [ batch, channels / 4, height, width, 4 ]

Es útil considerar la operación como la transformación de un 6-D Tensor. por ejemplo, para data_format = NHWC, cada elemento en el tensor de entrada se puede especificar a través de 6 coordenadas, ordenado por la disminución de la memoria disposición significado como: n, oy, por, buey, bX, iC (donde n = índice de lote, el buey, oY significa X o coordenadas y dentro de la imagen de salida, bX, mediante coordenadas dentro del bloque de entrada, iC significa canales de entrada). La salida sería una transposición a la disposición siguiente: n, oy, buey, por, BX, iC

Esta operación es útil para cambiar el tamaño de las activaciones entre circunvoluciones (pero manteniendo todos los datos), por ejemplo, en lugar de la agrupación. También es útil para la formación de modelos puramente convolucionales.

Por ejemplo, dada una entrada de forma [1, 2, 2, 1] , data_format = "NHWC" y block_size = 2:

 x = [[[[1], [2]],
      [[3], [4]]]]
 

Esta salida de operación voluntad un tensor de la forma de [1, 1, 1, 4] :

 [[[[1, 2, 3, 4]]]]
 

Aquí, la entrada tiene un lote de 1 y cada elemento de proceso por lotes tiene forma [2, 2, 1] , la salida correspondiente tendrá un único elemento (es decir, anchura y altura son ambos 1) y tendrá una profundidad de 4 canales (1 * * block_size block_size). La forma elemento de salida es [1, 1, 4] .

Para un tensor de entrada con la profundidad más grande, aquí de forma [1, 2, 2, 3] , por ejemplo,

 x = [[[[1, 2, 3], [4, 5, 6]],
      [[7, 8, 9], [10, 11, 12]]]]
 

Esta operación, por block_size de 2, devolverá el siguiente tensor de la forma de [1, 1, 1, 12]

 [[[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]]
 

Del mismo modo, para la siguiente entrada de la forma [1 4 4 1] , y un tamaño de bloque de 2:

 x = [[[[1],   [2],  [5],  [6]],
      [[3],   [4],  [7],  [8]],
      [[9],  [10], [13],  [14]],
      [[11], [12], [15],  [16]]]]
 

el operador volverá la siguiente tensor de la forma [1 2 2 4] :

 x = [[[[1, 2, 3, 4],
       [5, 6, 7, 8]],
      [[9, 10, 11, 12],
       [13, 14, 15, 16]]]]
 

input Un Tensor .
block_size Un int que es >= 2 . El tamaño del bloque espacial.
data_format Un opcional de string de: "NHWC", "NCHW", "NCHW_VECT_C" . Por defecto es "NHWC" .
name Un nombre para la operación (opcional).

Un Tensor . Tiene el mismo tipo que el input .