SpaceToBatch para tensores ND do tipo T.
Esta operação divide as dimensões "espaciais" `[1, ..., M]` da entrada em uma grade de blocos de formato `block_shape` e intercala esses blocos com a dimensão "lote" (0) de modo que na saída , as dimensões espaciais `[1, ..., M]` correspondem à posição dentro da grade, e a dimensão do lote combina a posição dentro de um bloco espacial e a posição original do lote. Antes da divisão em blocos, as dimensões espaciais da entrada são opcionalmente preenchidas com zeros de acordo com os `preenchimentos`. Veja abaixo uma descrição precisa.
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 > SpaceToBatchNd <T> | |
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 SpaceToBatchNd <T> create (escopo do escopo , entrada do operando <T>, operando <? estende TNumber > blockShape, operando <? estende TNumber > preenchimentos)
Método de fábrica para criar uma classe que envolve uma nova operação SpaceToBatchNd.
Parâmetros
escopo | escopo atual |
---|---|
entrada | ND com forma `input_shape = [lote] + forma_espacial + forma_restante`, onde forma_espacial tem dimensões `M`. |
forma de bloco | 1-D com formato `[M]`, todos os valores devem ser >= 1. |
preenchimentos | 2-D com formato `[M, 2]`, todos os valores devem ser >= 0. `paddings[i] = [pad_start, pad_end]` especifica o preenchimento para a dimensão de entrada `i + 1`, que corresponde à dimensão espacial `eu`. É necessário que `block_shape[i]` divida `input_shape[i + 1] + pad_start + pad_end`. Esta operação é equivalente às seguintes etapas: 1. Preencha com zero o início e o fim das dimensões `[1, ..., M]` da entrada de acordo com `paddings` para produzir `preenchimento` da forma `padded_shape`. 2. Remodele `padded` para `reformed_padded` da forma: [lote] + [forma_acolchoada[1] / forma_de_bloco[0], forma_de_bloco[0], ..., forma_acolchoada[M] / forma_de_bloco[M-1], forma_de_bloco[M-1]] + forma_restante 3. Permutar dimensões de `reformed_padded` para produzir `permuted_reformed_padded` de forma: forma_de_bloco + [lote] + [forma_de_bloco[1] / forma_de_bloco[0], ..., forma_de_bloco[M] / forma_de_bloco[M-1]] + forma_restante 4. Remodele `permuted_reformed_padded` para nivelar `block_shape` na dimensão do lote, produzindo um tensor de forma de saída: [lote * prod(forma_de_bloco)] + [forma_de_bloco[1] / forma_de_bloco[0], ..., forma_de_bloco[M] / forma_de_bloco[M-1]] + forma_restante Alguns exemplos: (1) Para a seguinte entrada de forma `[1, 2, 2, 1]`, `block_shape = [2, 2]` e `paddings = [[0, 0], [0, 0]]`: O tensor de saída tem forma `[4, 1, 1, 1]` e valor: (2) Para a seguinte entrada de forma `[1, 2, 2, 3]`, `block_shape = [2, 2]` e `paddings = [[0, 0], [0, 0]]`: O tensor de saída tem forma `[4, 1, 1, 3]` e valor: (3) Para a seguinte entrada de forma `[1, 4, 4, 1]`, `block_shape = [2, 2]` e `paddings = [[0, 0], [0, 0]]`: O tensor de saída tem forma `[4, 2, 2, 1]` e valor: (4) Para a seguinte entrada de forma `[2, 2, 4, 1]`, block_shape = `[2, 2]` e paddings = `[[0, 0], [2, 0]]`: O tensor de saída tem forma `[8, 1, 3, 1]` e valor: Entre outras, esta operação é útil para reduzir a convolução atrosa em convolução regular. |
Devoluções
- uma nova instância de SpaceToBatchNd