DepthToSpace para tensores do tipo T.
Reorganiza os dados de profundidade em blocos de dados espaciais. Esta é a transformação reversa do SpaceToDepth. Mais especificamente, esta operação gera uma cópia do tensor de entrada onde os valores da dimensão `profundidade` são movidos em blocos espaciais para as dimensões `altura` e `largura`. O atributo `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 tamanho `block_size x block_size` * A largura do tensor de saída é `input_profundidade * 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 atributo `data_format` especifica o layout dos tensores de entrada e saída com as seguintes opções: "NHWC": `[ lote, altura, largura, canais ]` "NCHW": `[ lote, canais, altura, largura ]` " NCHW_VECT_C": `qint8 [lote, canais / 4, altura, largura, 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 da 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 convoluções (mas mantendo todos os dados), por exemplo, em vez de agrupar. Também é útil para treinar modelos puramente convolucionais.
Por exemplo, dada uma entrada de formato `[1, 1, 1, 4]`, data_format = "NHWC" e block_size = 2:
x = [[[[1, 2, 3, 4]]]]
[[[[1], [2]],
[[3], [4]]]]
Para um tensor de entrada com maior profundidade, aqui de forma `[1, 1, 1, 12]`, por exemplo
x = [[[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]]
[[[[1, 2, 3], [4, 5, 6]],
[[7, 8, 9], [10, 11, 12]]]]
x = [[[[1, 2, 3, 4],
[5, 6, 7, 8]],
[[9, 10, 11, 12],
[13, 14, 15, 16]]]]
x = [[[ [1], [2], [5], [6]],
[ [3], [4], [7], [8]],
[ [9], [10], [13], [14]],
[ [11], [12], [15], [16]]]]
Classes aninhadas
aula | ProfundidadeToSpace.Options | Atributos opcionais para DepthToSpace |
Constantes
Corda | OP_NAME | O nome desta operação, conforme conhecido pelo mecanismo principal do TensorFlow |
Métodos Públicos
Saída <T> | asOutput () Retorna o identificador simbólico do tensor. |
estático <T estende TType > DepthToSpace <T> | |
DepthToSpace.Options estático | dataFormat (String dataFormat) |
Saída <T> | saída () |
Métodos herdados
Constantes
String final estática pública OP_NAME
O nome desta operação, conforme conhecido pelo mecanismo principal do TensorFlow
Métodos Públicos
Saída pública <T> asOutput ()
Retorna o identificador simbólico do tensor.
As entradas para operações do TensorFlow são saídas de outra operação do TensorFlow. Este método é usado para obter um identificador simbólico que representa o cálculo da entrada.
public static DepthToSpace <T> create ( Escopo escopo, entrada Operando <T>, Long blockSize, Opções... opções)
Método de fábrica para criar uma classe que envolve uma nova operação DepthToSpace.
Parâmetros
escopo | escopo atual |
---|---|
tamanho do bloco | O tamanho do bloco espacial, igual ao Space2Depth. |
opções | carrega valores de atributos opcionais |
Devoluções
- uma nova instância de DepthToSpace