QuantizeDownAndShrinkRange

classe finale publique QuantizeDownAndShrinkRange

Convertissez le tenseur « d'entrée » quantifié en une « sortie » de moindre précision, en utilisant le

distribution réelle des valeurs pour maximiser l'utilisation de la profondeur de bits inférieure et ajuster les plages min et max de sortie en conséquence.

[input_min, input_max] sont des flottants scalaires qui spécifient la plage d'interprétation flottante des données « d'entrée ». Par exemple, si input_min est -1.0f et input_max est 1.0f et que nous avons affaire à des données quantifiées quint16, alors une valeur 0 dans les données 16 bits doit être interprétée comme -1.0f, et un 65535 signifie 1.0f.

Cet opérateur essaie d'obtenir autant de précision que possible dans une sortie avec une profondeur de bits inférieure en calculant les valeurs minimales et maximales réelles trouvées dans les données. Par exemple, peut-être que l'entrée quint16 n'a pas de valeurs inférieures à 16 384 ni supérieures à 49 152. Cela signifie que seulement la moitié de la plage est réellement nécessaire, toutes les interprétations flottantes sont comprises entre -0,5f et 0,5f, donc si nous voulons compresser les données dans une sortie quint8, nous pouvons utiliser cette plage plutôt que la valeur théorique de -1,0f à 1,0. f qui est suggéré par les entrées min et max.

En pratique, cela est particulièrement utile pour extraire les résultats d'opérations telles que QuantizedMatMul, qui peuvent produire des sorties avec une profondeur de bits plus élevée que leurs entrées et peuvent avoir de larges plages de sortie potentielles, mais qui, en pratique, ont une distribution de valeurs d'entrée qui n'utilise qu'une petite fraction de la valeur d'entrée. portée possible. En introduisant cette sortie dans cet opérateur, nous pouvons la réduire de 32 bits à 8 avec une perte de précision minimale.

Constantes

Chaîne OP_NAME Le nom de cette opération, tel que connu par le moteur principal TensorFlow

Méthodes publiques

statique <U étend TType > QuantizeDownAndShrinkRange <U>
créer ( Scope scope, Operand <? extends TType > input, Operand < TFloat32 > inputMin, Operand < TFloat32 > inputMax, Class<U> outType)
Méthode d'usine pour créer une classe encapsulant une nouvelle opération QuantizeDownAndShrinkRange.
Sortie <U>
sortir ()
Sortie < TFloat32 >
sortieMax ()
La valeur flottante que représente la valeur de sortie quantifiée maximale.
Sortie < TFloat32 >
sortieMin ()
Valeur flottante que représente la valeur de sortie quantifiée minimale.

Méthodes héritées

Constantes

chaîne finale statique publique OP_NAME

Le nom de cette opération, tel que connu par le moteur principal TensorFlow

Valeur constante : "QuantizeDownAndShrinkRange"

Méthodes publiques

public static QuantizeDownAndShrinkRange <U> créer ( Scope scope, Operand <? extends TType > input, Operand < TFloat32 > inputMin, Operand < TFloat32 > inputMax, Class<U> outType)

Méthode d'usine pour créer une classe encapsulant une nouvelle opération QuantizeDownAndShrinkRange.

Paramètres
portée portée actuelle
entréeMin La valeur flottante que représente la valeur d’entrée quantifiée minimale.
entréeMax La valeur flottante que représente la valeur d’entrée quantifiée maximale.
Type de sortie Le type de sortie. Doit être une profondeur de bits inférieure à celle de Tinput.
Retour
  • une nouvelle instance de QuantizeDownAndShrinkRange

Sortie publique Sortie <U> ()

Sortie publique < TFloat32 > sortieMax ()

La valeur flottante que représente la valeur de sortie quantifiée maximale.

Sortie publique < TFloat32 > sortieMin ()

Valeur flottante que représente la valeur de sortie quantifiée minimale.