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> | |
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
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 < TFloat32 > sortieMax ()
La valeur flottante que représente la valeur de sortie quantifiée maximale.