tensorflow :: ops :: DepthToSpace
#include <array_ops.h>
DepthToSpace para tensores do tipo T.
Resumo
Reorganiza os dados de profundidade em blocos de dados espaciais. Esta é a transformação reversa de SpaceToDepth. Mais especificamente, este op produz uma cópia do tensor de entrada onde os valores da dimensão de depth
são movidos em blocos espaciais para as dimensões de height
e width
. O attr block_size
indica o tamanho do bloco de entrada e como os dados são movidos.
- Pedaços de dados de tamanho
block_size * block_size
da profundidade são reorganizados em blocos não sobrepostos de tamanhoblock_size x block_size
- A largura do tensor de saída é
input_depth * block_size
, enquanto a altura éinput_height * block_size
. - As coordenadas Y, X dentro de cada bloco da imagem de saída são determinadas pelo componente de ordem superior do índice do canal de entrada.
- A profundidade do tensor de entrada deve ser divisível por
block_size * block_size
.
O data_format
especifica o layout dos tensores de entrada e saída com as seguintes opções: "NHWC": [ batch, height, width, channels ]
"NCHW": [ batch, channels, height, width ]
"NCHW_VECT_C": qint8 [ batch, channels / 4, height, width, 4 ]
É útil considerar a operação como a transformação de um tensor 6-D. por exemplo, para data_format = NHWC, cada elemento no tensor de entrada pode ser especificado por meio de 6 coordenadas, ordenadas diminuindo a significância do layout de memória como: n, iY, iX, bY, bX, oC (onde n = índice de lote, iX, iY significa X ou coordenadas Y dentro da imagem de entrada, bX, bY significa coordenadas dentro do bloco de saída, oC significa canais de saída). A saída seria a entrada transposta para o seguinte layout: n, iY, bY, iX, bX, oC
Esta operação é útil para redimensionar as ativações entre as convoluções (mas mantendo todos os dados), por exemplo, em vez de agrupamento. Também é útil para treinar modelos puramente convolucionais.
Por exemplo, dada uma entrada de forma [1, 1, 1, 4]
, data_format = "NHWC" e block_size = 2:
x = [[[[1, 2, 3, 4]]]]
This operation will output a tensor of shape
[1, 2, 2, 1]
:
[[[[1], [2]], [[3], [4]]]]Aqui, a entrada tem um lote de 1 e cada elemento do lote tem forma
[1, 1, 4]
, a saída correspondente terá 2x2 elementos e terá uma profundidade de 1 canal (1 =4 / (block_size * block_size)
). A forma do elemento de saída é[2, 2, 1]
.Para um tensor de entrada com maior profundidade, aqui da forma
[1, 1, 1, 12]
, por exemplo
x = [[[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]]Esta operação, para bloco de tamanho 2, retornará o seguinte tensor de forma
[1, 2, 2, 3]
[[[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]]
Similarly, for the following input of shape
[1 2 2 4]
, and a block size of 2:
x = [[[[1, 2, 3, 4], [5, 6, 7, 8]], [[9, 10, 11, 12], [13, 14, 15, 16]]]]o operador retornará o seguinte tensor de forma
[1 4 4 1]
:
x = [[[ [1], [2], [5], [6]], [ [3], [4], [7], [8]], [ [9], [10], [13], [14]], [ [11], [12], [15], [16]]]]
Arguments:
- scope: A Scope object
- block_size: The size of the spatial block, same as in Space2Depth.
Returns:
Output
: The output tensor.
Constructors and Destructors |
|
---|---|
DepthToSpace(const ::tensorflow::Scope & scope, ::tensorflow::Input input, int64 block_size)
|
|
DepthToSpace(const ::tensorflow::Scope & scope, ::tensorflow::Input input, int64 block_size, const DepthToSpace::Attrs & attrs)
|
Public attributes |
|
---|---|
operation
|
|
output
|
Public functions |
|
---|---|
node() const
|
::tensorflow::Node *
|
operator::tensorflow::Input() const
|
|
operator::tensorflow::Output() const
|
|
Public static functions |
|
---|---|
DataFormat(StringPiece x)
|
Structs |
|
---|---|
tensorflow:: |
Optional attribute setters for DepthToSpace. |
Public attributes
operation
Operation operation
resultado
::tensorflow::Output output
Funções públicas
DepthToSpace
DepthToSpace( const ::tensorflow::Scope & scope, ::tensorflow::Input input, int64 block_size )
DepthToSpace
DepthToSpace( const ::tensorflow::Scope & scope, ::tensorflow::Input input, int64 block_size, const DepthToSpace::Attrs & attrs )
nó
::tensorflow::Node * node() const
operador :: tensorflow :: Input
operator::tensorflow::Input() const
operador :: tensorflow :: Saída
operator::tensorflow::Output() const
Funções estáticas públicas
Formato de dados
Attrs DataFormat( StringPiece x )