Formation prenant en compte la quantification (original) (raw)

Formation prenant en compte la quantification

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Maintenu par l'optimisation du modèle TensorFlow

Il existe deux formes de quantification : la quantification post-formation et la formation prenant en compte la quantification. Commencez par la quantification post-formation , car elle est plus facile à utiliser, même si une formation prenant en compte la quantification est souvent meilleure pour la précision du modèle.

Cette page fournit un aperçu de la formation prenant en compte la quantification pour vous aider à déterminer comment elle s'adapte à votre cas d'utilisation.

Aperçu

La formation prenant en compte la quantification émule la quantification du temps d'inférence, créant ainsi un modèle que les outils en aval utiliseront pour produire des modèles réellement quantifiés. Les modèles quantifiés utilisent une précision inférieure (par exemple 8 bits au lieu de 32 bits flottants), ce qui présente des avantages lors du déploiement.

Déployer avec quantification

La quantification apporte des améliorations via la compression du modèle et la réduction de la latence. Avec les valeurs par défaut de l'API, la taille du modèle est réduite de 4 fois et nous constatons généralement entre 1,5 et 4 fois des améliorations de la latence du processeur dans les backends testés. Finalement, des améliorations de la latence peuvent être constatées sur les accélérateurs d'apprentissage automatique compatibles, tels que EdgeTPU et NNAPI.

La technique est utilisée en production dans les cas d’utilisation de la parole, de la vision, du texte et de la traduction. Le code prend actuellement en charge un sous-ensemble de ces modèles .

Expérimentez avec la quantification et le matériel associé

Les utilisateurs peuvent configurer les paramètres de quantification (par exemple le nombre de bits) et, dans une certaine mesure, les algorithmes sous-jacents. Notez qu'avec ces modifications par rapport aux valeurs par défaut de l'API, il n'existe actuellement aucun chemin pris en charge pour le déploiement vers un backend. Par exemple, la conversion TFLite et les implémentations du noyau ne prennent en charge que la quantification 8 bits.

Les API spécifiques à cette configuration sont expérimentales et non soumises à une compatibilité ascendante.

Compatibilité API

Les utilisateurs peuvent appliquer la quantification avec les API suivantes :

Il est sur notre feuille de route d'ajouter un support dans les domaines suivants :

Matrice de support général

L’assistance est disponible dans les domaines suivants :

Il est sur notre feuille de route d'ajouter un support dans les domaines suivants :

Résultats

Classification d'images avec des outils

Modèle Précision Top-1 non quantifiée Précision quantifiée sur 8 bits
MobilenetV1 224 71,03% 71,06%
Resnet v1 50 76,3% 76,1%
MobilenetV2 224 70,77% 70,01%

Les modèles ont été testés sur Imagenet et évalués dans TensorFlow et TFLite.

Classification des images pour la technique

Modèle Précision Top-1 non quantifiée Précision quantifiée sur 8 bits
Nasnet-Mobile 74% 73%
Resnet-v2 50 75,6% 75%

Les modèles ont été testés sur Imagenet et évalués dans TensorFlow et TFLite.

Exemples

En plus de l' exemple de formation prenant en compte la quantification , consultez les exemples suivants :

Pour obtenir des informations sur quelque chose de similaire, consultez l' article Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference . Cet article présente certains concepts utilisés par cet outil. La mise en œuvre n'est pas exactement la même et des concepts supplémentaires sont utilisés dans cet outil (par exemple, quantification par axe).