Étant donné « l'entrée » du tenseur quantifié, requantifiez-le avec de nouveaux paramètres de quantification.
Étant donné le tenseur quantifié `input`, qui a été quantifié à l'aide de {input_scales, input_zero_points, input_quantization_axis, input_quantization_min_val, input_quantization_max_val}, requantifiez-le en un tenseur, qui est quantifié à l'aide de {output_scales, Output_zero_points, Output_quantization_axis, Output_quantization_min_val, Output_quantization_max_val}. La requantification se fait en utilisant la formule : 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)
Les cas pris en charge par la quantification par tenseur et par axe sont les suivants :
- par tenseur -> par tenseur
- par tenseur -> par axe
- par axe -> par axe où input_quantization_axis est égal à output_quantization_axis. c'est-à-dire qu'au moins un parmi input_quantization_axis et output_quantization_axis doit être -1, ou deux doivent être égaux.
Classes imbriquées
classe | UniformRequantize.Options | Attributs facultatifs pour UniformRequantize |
Méthodes publiques
Sortie <U> | comme Sortie () Renvoie le handle symbolique d'un tenseur. |
statique <U, T> UniformRequantize <U> | créer ( Portée de portée , Opérande <T> entrée, Opérande <Float> inputScales, Opérande <Integer> inputZeroPoints, Opérande <Float> outputScales, Opérande <Integer> outputZeroPoints, Class<U> Tout, Long inputQuantizationMinVal, Long inputQuantizationMaxVal, Long outputQuantizationMinVal, Sortie longueQuantizationMaxVal, Options... (options) Méthode d'usine pour créer une classe encapsulant une nouvelle opération UniformRequantize. |
statique UniformRequantize.Options | inputQuantizationAxis (Long inputQuantizationAxis) |
Sortie <U> | sortir () Le Tenseur quantifié de sortie de Tout, dont la forme est la même que celle de l'entrée. |
statique UniformRequantize.Options | outputQuantizationAxis (sortieQuantizationAxis longue) |
Méthodes héritées
Méthodes publiques
sortie publique <U> asOutput ()
Renvoie le handle symbolique d'un tenseur.
Les entrées des opérations TensorFlow sont les sorties d'une autre opération TensorFlow. Cette méthode est utilisée pour obtenir un handle symbolique qui représente le calcul de l’entrée.
public static UniformRequantize <U> créer ( Scope scope, Operand <T> input, Operand <Float> inputScales, Operand <Integer> inputZeroPoints, Operand <Float> outputScales, Operand <Integer> outputZeroPoints, Class<U> Tout, Long inputQuantizationMinVal, (Options Long inputQuantizationMaxVal, Long outputQuantizationMinVal, Long outputQuantizationMaxVal, Options... )
Méthode d'usine pour créer une classe encapsulant une nouvelle opération UniformRequantize.
Paramètres
portée | portée actuelle |
---|---|
saisir | Ce doit être un tenseur d'étain. |
échelles d'entrée | La ou les valeurs flottantes utilisées comme échelle(s) lors de la quantification des données originales représentées par « entrée ». Doit être un Tensor scalaire si quantization_axis est -1 (quantification par tenseur), sinon Tensor 1D de taille (input.dim_size(quantization_axis),) (quantisation par axe). |
entréeZéroPoints | La ou les valeurs int32 utilisées comme point(s) zéro lors de la quantification des données originales représentées par « input ». Même état de forme que les écailles. |
échelles de sortie | La ou les valeurs flottantes à utiliser comme nouvelles échelles pour quantifier les données originales représentées par « entrée ». Doit être un Tensor scalaire si quantization_axis est -1 (quantification par tenseur), sinon Tensor 1D de taille (input.dim_size(quantization_axis),) (quantisation par axe). |
sortieZéroPoints | La ou les valeurs int32 à utiliser comme nouveau(x) point(s) zéro pour quantifier les données originales représentées par « input ». Même état de forme que les écailles. |
Tout | Le type de Tensor de sortie. Un tf.DType de : tf.qint8, tf.qint32 |
inputQuantizationMinVal | La valeur minimale de quantification qui a été utilisée lors de la quantification des données originales représentées par « entrée ». Le but de cet attribut est généralement (mais sans s'y limiter) d'indiquer une plage étroite, où il est défini sur : "(Tin le plus bas) + 1" si la plage est étroite, et "(Tin le plus bas)" sinon. Par exemple, si Tin est qint8, il est réglé sur -127 si quantifié à plage étroite ou sur -128 sinon. |
inputQuantizationMaxVal | La valeur maximale de quantification qui a été utilisée lors de la quantification des données originales représentées par « entrée ». Le but de cet attribut est généralement (mais sans s'y limiter) d'indiquer une plage étroite, où il est défini sur : `(Tout max)` pour une plage étroite et une plage non étroite. Par exemple, si Tin est qint8, la valeur est 127. |
sortieQuantizationMinVal | La nouvelle valeur minimale de quantification pour quantifier les données originales représentées par « entrée ». |
sortieQuantizationMaxVal | La nouvelle valeur maximale de quantification pour quantifier les données originales représentées par « entrée ». |
choix | porte des valeurs d'attributs facultatifs |
Retour
- une nouvelle instance de UniformRequantize
public statique UniformRequantize.Options inputQuantizationAxis (Long inputQuantizationAxis)
Paramètres
inputQuantizationAxis | L'axe de quantification qui a été utilisé lors de la quantification des données originales représentées par « entrée ». Indique l'indice de dimension du tenseur où la quantification par axe est appliquée pour les tranches le long de cette dimension. S'il est défini sur -1 (par défaut), cela indique une quantification par tenseur. Sinon, il doit être défini dans la plage [0, input.dims()). |
---|
Sortie publique Sortie <U> ()
Le Tenseur quantifié de sortie de Tout, dont la forme est la même que celle de l'entrée.
public statique UniformRequantize.Options outputQuantizationAxis (Long outputQuantizationAxis)
Paramètres
sortieQuantizationAxis | Le nouvel axe de quantification à utiliser pour quantifier les données originales représentées par « entrée ». |
---|