Dada a `entrada` do tensor quantizado, requantize-o com novos parâmetros de quantização.
Dado o tensor quantizado `input`, que foi quantizado usando {input_scales, input_zero_points, input_quantization_axis, input_quantization_min_val, input_quantization_max_val}, requantize-o para um tensor, que é quantizado usando {output_scales, output_zero_points, output_quantization_axis, output_quantization_min_val, output_quantization_max_val}. A requantização é feita usando a fórmula: output_quantized_data = clip( (input_quantized_data - input_zero_point) * (input_scale / output_scale) + output_zero_point, output_quantization_min_val, output_quantization_max_val)
Os casos suportados de quantização por tensor e por eixo são os seguintes:
- por tensor -> por tensor
- por tensor -> por eixo
- por eixo -> por eixo onde input_quantization_axis é igual a output_quantization_axis. ou seja, pelo menos um entre eixo_de_quantização_de_entrada e eixo_de_quantização_de_saída deve ser -1 ou dois devem ser iguais.
Classes aninhadas
aula | UniformRequantize.Options | Atributos opcionais para UniformRequantize |
Métodos Públicos
Saída <U> | asOutput () Retorna o identificador simbólico de um tensor. |
estático <U, T> UniformRequantize <U> | create ( Escopo do escopo , Operando <T> entrada, Operando <Float> inputScales, Operando <Integer> inputZeroPoints, Operando <Float> outputScales, Operando <Integer> outputZeroPoints, Class<U> Tout, Long inputQuantizationMinVal, Long inputQuantizationMaxVal, Long outputQuantizationMinVal, Saída longaQuantizationMaxVal, Opções... opções) Método de fábrica para criar uma classe que envolve uma nova operação UniformRequantize. |
UniformRequantize.Options estático | inputQuantizationAxis (entrada longaQuantizationAxis) |
Saída <U> | saída () A saída quantizou o Tensor de Tout, cujo formato é igual ao da entrada. |
UniformRequantize.Options estático | outputQuantizationAxis (saída longaQuantizationAxis) |
Métodos herdados
Métodos Públicos
Saída pública <U> 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 UniformRequantize <U> create ( Escopo escopo , Operando <T> entrada, Operando <Float> inputScales, Operando <Integer> inputZeroPoints, Operando <Float> outputScales, Operando <Integer> outputZeroPoints, Class<U> Tout, Long inputQuantizationMinVal, Entrada longaQuantizationMaxVal, Saída longaQuantizationMinVal, Saída longaQuantizationMaxVal, Opções... opções)
Método de fábrica para criar uma classe que envolve uma nova operação UniformRequantize.
Parâmetros
escopo | escopo atual |
---|---|
entrada | Deve ser um tensor de estanho. |
escalas de entrada | O(s) valor(es) flutuante(s) usado(s) como escala(s) ao quantizar os dados originais que `input` representa. Deve ser um Tensor escalar se quantization_axis for -1 (quantização por tensor), caso contrário Tensor 1D de tamanho (input.dim_size(quantization_axis),) (quantização por eixo). |
inputZeroPoints | O(s) valor(es) int32 usados como ponto(s) zero ao quantizar os dados originais que `input` representa. Mesma condição de formato das escalas. |
escalas de saída | Os valores flutuantes a serem usados como novas escalas para quantizar os dados originais que `input` representa. Deve ser um Tensor escalar se quantization_axis for -1 (quantização por tensor), caso contrário Tensor 1D de tamanho (input.dim_size(quantization_axis),) (quantização por eixo). |
saídaZeroPoints | O(s) valor(es) int32 a serem usados como novos pontos_zero para quantizar os dados originais que `input` representa. Mesma condição de formato das escalas. |
Anunciante | O tipo de tensor de saída. Um tf.DType de: tf.qint8, tf.qint32 |
entradaQuantizaçãoMinVal | O valor mínimo de quantização que foi usado ao quantizar os dados originais que `input` representa. O objetivo deste atributo é normalmente (mas não limitado a) indicar um intervalo estreito, onde é definido como: `(Tin lower) + 1` se for um intervalo estreito, e `(Tin lower)` caso contrário. Por exemplo, se Tin for qint8, será definido como -127 se for quantizado em faixa estreita ou -128 se não for. |
entradaQuantizaçãoMaxVal | O valor máximo de quantização que foi usado ao quantizar os dados originais que `input` representa. O objetivo deste atributo é normalmente (mas não limitado a) indicar intervalo estreito, onde é definido como: `(Tout max)` para intervalo estreito e não estreito. Por exemplo, se Tin for qint8, será definido como 127. |
saídaQuantizaçãoMinVal | O novo valor mínimo de quantização para quantizar os dados originais que `input` representa. |
saídaQuantizaçãoMaxVal | O novo valor máximo de quantização para quantizar os dados originais que `input` representa. |
opções | carrega valores de atributos opcionais |
Devoluções
- uma nova instância de UniformRequantize
público estático UniformRequantize.Options inputQuantizationAxis (entrada longaQuantizationAxis)
Parâmetros
entradaQuantizaçãoAxis | O eixo de quantização que foi usado ao quantizar os dados originais que `input` representa. 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. Caso contrário, deve ser definido dentro do intervalo [0, input.dims()). |
---|
public static UniformRequantize.Options outputQuantizationAxis (saída longaQuantizationAxis)
Parâmetros
saídaQuantizationAxis | O novo eixo de quantização a ser usado para quantizar os dados originais que `input` representa. |
---|