Dado o tensor quantizado `input`, 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 input_quantization_axis e output_quantization_axis deve ser -1, ou dois devem ser iguais.
Classes aninhadas
classe | UniformRequantize.Options | Atributos opcionais para UniformRequantize |
Métodos públicos
Saída <U> | comoSaída () 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, Long outputQuantizationMaxVal, Options... options) Método de fábrica para criar uma classe que envolve uma nova operação UniformRequantize. |
static UniformRequantize.Options | inputQuantizationAxis (Long inputQuantizationAxis) |
Saída <U> | saída () A saída quantizou o Tensor de Tout, cuja forma é a mesma da entrada. |
static UniformRequantize.Options | outputQuantizationAxis (Long outputQuantizationAxis) |
Métodos Herdados
Métodos públicos
Public Output <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 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, Long outputQuantizationMaxVal, Options... options)
Método de fábrica para criar uma classe que envolve uma nova operação UniformRequantize.
Parâmetros
alcance | escopo atual |
---|---|
entrada | Deve ser um tensor de estanho. |
escalas de entrada | O(s) valor(es) flutuante(s) usado(s) como escala(s) ao quantificar 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 usado(s) como zero_point(s) ao quantificar os dados originais que `input` representa. Mesma condição de forma que as escalas. |
outputScales | Os valores flutuantes a serem usados como nova(s) escala(s) para quantificar 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). |
outputZeroPoints | O(s) valor(es) int32 a serem usados como novo(s) zero_point(s) para quantificar os dados originais que `input` representa. Mesma condição de forma que as escalas. |
Tout | O tipo de Tensor de saída. Um tf.DType de: tf.qint8, tf.qint32 |
inputQuantizationMinVal | O valor mínimo de quantização que foi usado ao quantificar os dados originais que o `input` representa. O objetivo deste atributo é normalmente (mas não limitado a) indicar um intervalo estreito, onde é definido como: `(Tin o mais baixo) + 1` se o intervalo for estreito, e `(Tin o mais baixo)` caso contrário. Por exemplo, se Tin for qint8, isso será definido como -127 se for quantizado em faixa estreita ou -128 se não for. |
inputQuantizationMaxVal | O valor máximo de quantização que foi usado ao quantificar os dados originais que o `input` representa. O objetivo deste atributo é normalmente (mas não limitado a) indicar um intervalo estreito, onde é definido como: `(Tout max)` tanto para intervalo estreito quanto para intervalo não estreito. Por exemplo, se Tin for qint8, será definido como 127. |
outputQuantizationMinVal | O novo valor mínimo de quantização para quantizar os dados originais que `input` representa. |
outputQuantizationMaxVal | 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
public static UniformRequantize.Options inputQuantizationAxis (Long inputQuantizationAxis)
Parâmetros
inputQuantizationAxis | O eixo de quantização que foi usado ao quantificar os dados originais que o `input` representa. Indica o índice de dimensão do tensor onde a quantização por eixo é aplicada para as 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 (Long outputQuantizationAxis)
Parâmetros
outputQuantizationAxis | O novo eixo de quantização a ser usado para quantizar os dados originais que o `input` representa. |
---|