SpaceToBatch para tensores ND do tipo T.
Esta operação divide as dimensões "espaciais" `[1, ..., M]` da entrada em uma grade de blocos da forma `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 do lote original. Antes da divisão em blocos, as dimensões espaciais da entrada são opcionalmente preenchidas com zeros de acordo com `preenchimentos`. Veja abaixo uma descrição precisa.
Métodos Públicos
Saída <T> | asOutput () Retorna o identificador simbólico de um tensor. |
static <T, U extends Number, V extends Number> SpaceToBatchNd <T> | |
Saída <T> | saída () |
Métodos herdados
Métodos Públicos
public Output <T> asOutput ()
Retorna o identificador simbólico de um tensor.
As entradas para as 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 ( Scope escopo, Operando <T> entrada, Operando <U> blockShape, Operando <V> paddings)
Método de fábrica para criar uma classe envolvendo uma nova operação SpaceToBatchNd.
Parâmetros
alcance | escopo atual |
---|---|
entrada | ND com forma `input_shape = [batch] + spatial_shape + restante_shape`, em que spatial_shape tem dimensões` M`. |
blockShape | 1-D com forma `[M]`, todos os valores devem ser> = 1. |
recheios | 2-D com a forma `[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 `i`. É necessário que `block_shape [i]` divida `input_shape [i + 1] + pad_start + pad_end`. Esta operação é equivalente às seguintes etapas: 1. Zere o início e o fim das dimensões `[1, ..., M]` da entrada de acordo com `paddings` para produzir` preenchido` da forma `padded_shape`. 2. Remodele o formato `padded` para` reshaped_padded`: [batch] + [padded_shape [1] / block_shape [0], block_shape [0], ..., padded_shape [M] / block_shape [M-1], block_shape [M-1]] + restante_shape 3. Permute as dimensões de `reshaped_padded` para produzir` permuted_reshaped_padded` de forma: forma_do_bloqueio + [lote] + [forma_do_pacote [1] / forma_do_bloco [0], ..., forma_do_pacote [M] / forma_do_bloqueio [M-1]] + forma_de_loco 4. Remodele `permuted_reshaped_padded` para nivelar` block_shape` na dimensão do lote, produzindo um tensor de saída de forma: [batch * prod (block_shape)] + [padded_shape [1] / block_shape [0], ..., padded_shape [M] / block_shape [M-1]] + restantes Alguns exemplos: (1) Para a seguinte entrada de forma `[1, 2, 2, 1]`, `block_shape = [2, 2]` e `preenchimentos = [[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 `preenchimentos = [[0, 0], [0, 0]]`: O tensor de saída tem forma `[ 4, 2, 2, 1] `e valor: (4) Para a seguinte entrada da forma` [2, 2, 4, 1] `, block_shape =` [2, 2] `e preenchimentos =` [[ 0, 0], [2, 0]] `: O tensor de saída tem forma` [8, 1, 3, 1] `e valor: Entre outros, esta operação é útil para reduzir a convolução atrosa em convolução regular. |
Devoluções
- uma nova instância de SpaceToBatchNd