flux tensoriel : : opérations : : QuantizeDownAndShrinkRange

#include <math_ops.h>

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

Résumé

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.

Arguments:

  • scope : un objet Scope
  • input_min : la valeur flottante que représente la valeur d'entrée quantifiée minimale.
  • input_max : la valeur flottante que représente la valeur d'entrée quantifiée maximale.
  • out_type : le type de sortie. Doit être une profondeur de bits inférieure à celle de Tinput.

Retour:

  • Sortie Output
  • Output output_min : la valeur flottante que représente la valeur de sortie quantifiée minimale.
  • Output output_max : la valeur flottante que représente la valeur de sortie quantifiée maximale.

Constructeurs et Destructeurs

QuantizeDownAndShrinkRange (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input input_min, :: tensorflow::Input input_max, DataType out_type)

Attributs publics

operation
output
output_max
output_min

Attributs publics

opération

Operation operation

sortir

::tensorflow::Output output

sortie_max

::tensorflow::Output output_max

sortie_min

::tensorflow::Output output_min

Fonctions publiques

QuantizeDownAndShrinkRange

 QuantizeDownAndShrinkRange(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input input_min,
  ::tensorflow::Input input_max,
  DataType out_type
)