Execute a convolução quantizada híbrida do tensor flutuante `lhs` e do tensor quantizado `rhs`.
Dado `lhs` flutuante e `rhs` quantizado, executa internamente a quantização em `lhs` e, em seguida, executa a convolução quantizada em `lhs` e `rhs` quantizados.
A quantização interna em `lhs` é uma quantização para `Trhs`, faixa dinâmica, por lote (por eixo ao longo do eixo `dimension_numbers.input_batch_dimension`), assimétrica e não faixa estreita (a faixa é [Trhs_MIN, Trhs_MAX]) .
`lhs` e `rhs` devem ser tensores da mesma classificação e atender às seguintes condições de forma. - lhs_feature % feature_group_count == 0 - lhs_feature % rhs_input_feature == 0 - lhs_feature / feature_group_count == rhs_input_feature - rhs_output_feature % feature_group_count == 0 - lhs_batch % batch_group_count == 0 - rhs_output_feature % batch_group_count == 0
`rhs` deve ser Tensor quantizado, onde seu valor de dados é quantizado usando a fórmula: quantized_data = clip(original_data /scale + zero_point, quantization_min_val, quantization_max_val).
Classes aninhadas
aula | UniformQuantizedConvolutionHybrid.Options | Atributos opcionais para UniformQuantizedConvolutionHybrid |
Métodos Públicos
Saída <V> | asOutput () Retorna o identificador simbólico de um tensor. |
estático UniformQuantizedConvolutionHybrid.Options | batchGroupCount (Lot batchGroupCount) |
static <V estende o número, T estende o número, U> UniformQuantizedConvolutionHybrid <V> | create ( Escopo do escopo , Operando <T> lhs, Operando <U> rhs, Operando <Float> rhsScales, Operando <Integer> rhsZeroPoints, Classe<V> Tout, Preenchimento de string, Long rhsQuantizationMinVal, Long rhsQuantizationMaxVal, Opções... opções) Método de fábrica para criar uma classe que envolve uma nova operação UniformQuantizedConvolutionHybrid. |
estático UniformQuantizedConvolutionHybrid.Options | dimensionNumbers (string dimensionNumbers) |
estático UniformQuantizedConvolutionHybrid.Options | explicitPadding (Lista<Long> explicitPadding) |
estático UniformQuantizedConvolutionHybrid.Options | featureGroupCount (recurso longoGroupCount) |
estático UniformQuantizedConvolutionHybrid.Options | lhsDilation (Lista<Long> lhsDilation) |
Saída <V> | saída () O tensor de saída de `Tout`, mesma classificação de `lhs` e `rhs`. |
estático UniformQuantizedConvolutionHybrid.Options | rhsDilation (Lista<Long> rhsDilation) |
estático UniformQuantizedConvolutionHybrid.Options | rhsQuantizationAxis (Long rhsQuantizationAxis) |
estático UniformQuantizedConvolutionHybrid.Options | windowStrides (List<Long> windowStrides) |
Métodos herdados
Métodos Públicos
Saída pública <V> asOutput ()
Retorna o identificador simbólico de um 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 UniformQuantizedConvolutionHybrid.Options batchGroupCount (Longo batchGroupCount)
Parâmetros
loteGroupCount | O número de grupos de lote. Usado para filtros agrupados. Deve ser um divisor de output_feature. |
---|
public static UniformQuantizedConvolutionHybrid <V> create ( Escopo escopo , Operando <T> lhs, Operando <U> rhs, Operando <Float> rhsScales, Operando <Integer> rhsZeroPoints, Classe<V> Tout, Preenchimento de string, Long rhsQuantizationMinVal, Long rhsQuantizationMaxVal, Opções... opções)
Método de fábrica para criar uma classe que envolve uma nova operação UniformQuantizedConvolutionHybrid.
Parâmetros
escopo | escopo atual |
---|---|
lhs | Deve ser um tensor não quantizado de `Tlhs`, classificação >= 3. |
rh | Deve ser um tensor quantizado de `Trhs`, mesma classificação de `lhs`. |
escalas rhs | O(s) valor(es) flutuante(s) usado(s) como fatores de escala ao quantizar os dados originais que `rhs` representa. Deve ser um Tensor escalar para quantização por tensor, ou Tensor 1D de tamanho `rhs.dim_size(kernel_output_feature_dimension)`, para quantização por canal. |
rhsZeroPontos | O(s) valor(es) int32 usado(s) como ponto_zero ao quantizar os dados originais que `rhs` representa. Mesma condição de forma que `rhs_scales`. |
Anunciante | O tipo de tensor de saída. |
preenchimento | string de: `"SAME"`, `"VALID"` ou `"EXPLICIT"`, indicando o tipo de algoritmo de preenchimento a ser usado. |
rhsQuantizaçãoMinVal | O valor mínimo dos dados quantizados armazenados em `rhs`. Por exemplo, se `Trhs` for qint8, deve ser definido como -127 se for quantizado em faixa estreita ou -128 se não for. |
rhsQuantizaçãoMaxVal | O valor máximo dos dados quantizados armazenados em `rhs`. Por exemplo, se `Trhs` for qint8, deverá ser definido como 127. |
opções | carrega valores de atributos opcionais |
Devoluções
- uma nova instância de UniformQuantizedConvolutionHybrid
public static UniformQuantizedConvolutionHybrid.Options dimensionNumbers (String dimensionNumbers)
Parâmetros
dimensãoNúmeros | Estrutura de informações de dimensão para a operação de convolução. Deve ser uma string vazia (padrão) ou uma string serializada do proto tensorflow.UniformQuantizedConvolutionDimensionNumbersAttr. Se a string estiver vazia, o padrão é `("NCHW", "OIHW", "NCHW")` (para uma convolução 2D). |
---|
public static UniformQuantizedConvolutionHybrid.Options explicitPadding (List<Long> explicitPadding)
Parâmetros
explícitoPadding | Se `padding` Attr for `"EXPLICIT"`, deve ser definido como uma lista indicando os preenchimentos explícitos no início e no final de cada dimensão espacial lhs. Caso contrário, este Attr deve estar vazio. (Se usado,) Deve ser uma lista de tamanho 2 * (número de dimensões espaciais lhs), onde (preenchimento_explícito[2 * i], preenchimento_explícito[2 * i + 1]) indica dimensões_espaciais[i] (preenchimento_inicial, preenchimento_final). |
---|
public static UniformQuantizedConvolutionHybrid.Options featureGroupCount (recurso longoGroupCount)
Parâmetros
recursoGroupCount | O número de grupos de recursos. Usado para convoluções agrupadas. Deve ser um divisor de lhs_feature e output_feature. |
---|
public static UniformQuantizedConvolutionHybrid.Options lhsDilation (List<Long> lhsDilation)
Parâmetros
lhsDilatação | O fator de dilatação a aplicar em cada dimensão espacial de `lhs`. Deve ser uma lista vazia (padrão) ou uma lista de tamanho (número de dimensões espaciais lhs). Se a lista estiver vazia, a dilatação para cada dimensão espacial lhs é definida como 1. |
---|
Saída pública <V> saída ()
O tensor de saída de `Tout`, mesma classificação de `lhs` e `rhs`. Os dados de saída são os dados de saída não quantizados.
public static UniformQuantizedConvolutionHybrid.Options rhsDilation (List<Long> rhsDilation)
Parâmetros
rhsDilatação | O fator de dilatação a ser aplicado em cada dimensão espacial de `rhs`. Deve ser uma lista vazia (padrão) ou uma lista de tamanho (número de dimensões espaciais rhs). Se a lista estiver vazia, a dilatação para cada dimensão espacial rhs é definida como 1. |
---|
público estático UniformQuantizedConvolutionHybrid.Options rhsQuantizationAxis (Long rhsQuantizationAxis)
Parâmetros
rhsQuantizationAxis | Indica o índice de dimensão do tensor onde a quantização por eixo é aplicada às fatias ao longo dessa dimensão. Se definido como -1 (padrão), indica quantização por tensor. Para o `rhs`, apenas a quantização por tensor ou a quantização por canal ao longo de kernel_output_feature_dimension é suportada. Portanto, este atributo deve ser definido como -1 ou `dimension_numbers.kernel_output_feature_dimension`. Outros valores gerarão erros na construção do OpKernel. |
---|
public static UniformQuantizedConvolutionHybrid.Options windowStrides (List<Long> windowStrides)
Parâmetros
janelaStrides | O avanço da janela deslizante para cada dimensão espacial de `lhs`. Deve ser uma lista vazia (padrão) ou uma lista de tamanho (número de dimensões espaciais). Se for fornecida uma lista vazia, o passo para cada dimensão espacial é definido como 1. |
---|