Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

FLOPs

Comprendre les FLOPs dans l'apprentissage automatique ! Découvrez comment ils mesurent la complexité du modèle, ont un impact sur l'efficacité et facilitent la sélection du matériel.

Les FLOP, ou opérations en virgule flottante, constituent une mesure fondamentale pour quantifier la complexité informatique des modèles d'apprentissage automatique. modèles d'apprentissage automatique, en particulier dans le domaine de l'apprentissage profond. Cette mesure calcule le nombre total d'opérations mathématiques, telles que l'addition, la soustraction, la multiplication et la division impliquant des décimales, comme l'addition, la soustraction, la multiplication et la division impliquant des nombres décimaux - nécessaires pour effectuer une seule passe avant d'un réseau neuronal. réseau neuronal. En déterminant le nombre de FLOPs, les ingénieurs peuvent estimer la puissance de traitement nécessaire à l'exécution d'un modèle, ce qui en fait une statistique vitale pour la sélection et l'optimisation du matériel. pour la sélection et l'optimisation du matériel. Bien que distincts de la taille des fichiers ou du nombre de paramètres, les FLOP fournissent une base théorique pour déterminer la "lourdeur" d'un modèle. le poids d'un modèle, qui est directement lié à la consommation d'énergie et à la vitesse d'exécution sur des processeurs tels qu'un ordinateur portable. comme une CPU ou GPU.

L'importance des FLOPs dans le développement de l'IA

La compréhension du coût de calcul d'un modèle est essentielle pour un développement efficace de l'IA. efficace de l'IA. Un nombre de FLOPs indique généralement qu'un modèle nécessite moins de calculs pour produire une prédiction, ce qui est essentiel pour les environnements où les ressources sont limitées. pour les environnements aux ressources limitées.

  • Sélection du matériel: La connaissance des FLOP permet aux développeurs d'adapter les modèles aux capacités d'un matériel spécifique, tel que la série NVIDIA Jetson. matériel spécifique, comme la série NVIDIA Jetson ou les microcontrôleurs intégrés standard.
  • Efficacité du modèle: Lors de la comparaison d'architectures, par exemple en vérifiant les mesures de performance de YOLO11 , les FLOPs offrent un moyen indépendant du matériel de mesurer l'efficacité en même temps que la précision.
  • Consommation d'énergie: Dans les appareils alimentés par batterie, la réduction du nombre de FLOP se traduit directement par un allongement de la durée de vie de la batterie, car le processeur effectue moins de travail par image. car le processeur effectue moins de travail par image.

Applications concrètes

L'impact pratique des FLOP est le plus visible lorsque les modèles passent de la recherche à des environnements de production où la latence et la puissance sont limitées. et la puissance sont limitées.

  1. Détection d'objets sur smartphone: Pour une application mobile effectuant l'inférence en temps réel, l'appareil doit traiter images vidéo instantanément sans surchauffer ni épuiser la batterie. Les développeurs peuvent choisir un modèle léger comme la version Nano de YOLO11 car son faible nombre de FLOPs garantit des performances fluides sur les processeurs mobiles Qualcomm Snapdragon ou Apple Silicon.
  2. Navigation autonome des drones: Les drones utilisés dans l 'agriculture de précision s'appuient sur des pour detect obstacles et cartographier le terrain. Comme ces appareils sont soumis à des limites de poids strictes qui restreignent la de la batterie, les ingénieurs optimisent les FLOP pour maximiser le temps de vol tout en maintenant les capacités de détection d'objets nécessaires. de détection d'objets nécessaires.

Calculer les FLOPs avec Python

Vous pouvez déterminer la complexité de calcul d'un modèle Ultralytics en utilisant les outils de profilage intégrés. L'extrait suivant charge un modèle et calcule les FLOPs requis pour une taille d'entrée spécifique.

from ultralytics import YOLO

# Load the YOLO11 nano model
model = YOLO("yolo11n.pt")

# Profile the model to see FLOPs, parameters, and speed
# The 'imgsz' argument defines the input resolution (e.g., 640x640)
model.profile(imgsz=640)

Cette méthode produit un tableau récapitulatif comprenant le nombre de paramètres, les gradients et les GFLOPs (GigaFLOPs, ou milliards d'opérations), ce qui vous permet d'évaluer si le modèle correspond à la réalité. milliards d'opérations), vous aidant à évaluer si le modèle correspond à vos contraintes de déploiement.

FLOPs vs. Métriques associées

Il est important de distinguer les FLOP des autres mesures qui décrivent la taille et la vitesse du modèle, car elles mesurent des aspects différents de la performance. différents aspects de la performance.

  • Paramètres vs. FLOPs: Les poids du modèle, ou paramètres, définissent la quantité de mémoire mémoire (RAM) nécessaire pour stocker le modèle. En revanche, les FLOPs mesurent le travail de calcul nécessaire pour l'exécuter. A peut être petit en termes de stockage mais coûteux en termes de calcul s'il réutilise fréquemment les paramètres, comme c'est le cas dans les réseaux neuronaux récurrents (RNN). les réseaux neuronaux récurrents (RNN).
  • MACs vs. FLOPs: Les spécifications matérielles font souvent référence aux opérations suivantes Opérations de multiplication et d'addition (MAC). Une MAC implique généralement une multiplication suivie d'une addition, ce qui correspond à deux opérations en virgule flottante. Par conséquent, 1 GigaMAC équivaut à peu près à 2 GFLOPs.
  • Latence vs. FLOPs: Alors que les FLOPs représentent l'effort théorique, la latence d'inférence est le temps réel (en minutes), la latence d'inférence est le temps réel (en millisecondes) qu'il faut pour traiter une entrée. (en millisecondes) nécessaire au traitement d'une entrée. La latence est influencée par les FLOP, mais aussi par la bande passante de la mémoire, les bibliothèques d'optimisation logicielle comme les les bibliothèques d'optimisation logicielle comme TensorRTet l'architecture et l'architecture matérielle.

Limites de la métrique

Bien que les FLOP constituent une base utile, ils ne donnent pas une image complète des performances du modèle. Ils ne tiennent pas compte les coûts d'accès à la mémoire (l'énergie et le temps nécessaires pour déplacer les données vers le processeur), qui est souvent le goulot d'étranglement dans les systèmes modernes d'apprentissage profond. systèmes modernes d'apprentissage profond. En outre, les opérations comme les fonctions d'activation (par exemple, ReLU) ou les couches de normalisation ont un faible nombre de FLOP mais consomment tout de même du temps. Par conséquent, les FLOP doivent être utilisés en conjonction avec avec l'analyse comparative du monde réel sur le matériel cible, tel qu'un Raspberry Pi, afin d'obtenir une image précise des performance.

Rejoindre la communauté Ultralytics

Rejoignez le futur de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

Rejoindre maintenant