Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

FLOPs

FLOPs im Machine Learning verstehen! Erfahren Sie, wie sie die Modellkomplexität messen, die Effizienz beeinflussen und die Hardwareauswahl unterstützen.

FLOPs (Floating-Point-Operationen) dienen als grundlegende Metrik zur Quantifizierung der Rechenkomplexität von Modellen des maschinellen Lernens, insbesondere im dem Bereich des Deep Learning. Dieses Maß berechnet die Gesamtzahl der mathematischen Operationen - wie Addition, Subtraktion, Multiplikation und Division mit Dezimalzahlen -, die erforderlich ist, um einen einzigen Vorwärtsdurchlauf eines neuronalen Netzes. Durch die Bestimmung der Anzahl der FLOPs, können Ingenieure die für die Ausführung eines Modells benötigte Rechenleistung abschätzen, was sie zu einer wichtigen Kennzahl für die Auswahl und Optimierung. FLOPs unterscheiden sich zwar von der Dateigröße oder der Anzahl der Parameter, bieten aber einen theoretischen Anhaltspunkt dafür wie "schwer" ein Modell ist, was in direktem Zusammenhang mit dem Energieverbrauch und der Ausführungsgeschwindigkeit auf Prozessoren wie einer CPU oder GPU.

Die Bedeutung von FLOPs in der KI-Entwicklung

Das Verständnis der Rechenkosten eines Modells ist für eine effiziente KI-Entwicklung. Eine niedrigere FLOPs Anzahl zeigt im Allgemeinen an, dass ein Modell weniger Berechnungen benötigt, um eine Vorhersage zu erstellen, was für Umgebungen mit eingeschränkten Ressourcen.

  • Auswahl der Hardware: Die Kenntnis der FLOPs ermöglicht es Entwicklern, die Modelle an die Fähigkeiten der spezifischer Hardware, wie etwa der NVIDIA Jetson-Serie oder Standard-Embedded-Mikrocontroller.
  • Modell-Effizienz: Beim Vergleich von Architekturen, z. B. bei der Überprüfung der YOLO11 , bieten FLOPs eine hardwareunabhängige Möglichkeit, neben der Genauigkeit auch die Effizienz zu messen.
  • Energieverbrauch: Bei batteriebetriebenen Geräten führt die Reduzierung der FLOPs direkt zu einer längeren Batterielebensdauer, da der Prozessor weniger Arbeit pro Frame verrichtet.

Anwendungsfälle in der Praxis

Die praktischen Auswirkungen von FLOPs werden am deutlichsten, wenn Modelle von der Forschung in Produktionsumgebungen überführt werden, wo Latenz und Leistung begrenzt sind.

  1. Smartphone-Objekt-Erkennung: Für eine mobile Anwendung, die Echtzeit-Inferenz durchführen, muss das Gerät Videobilder Videobilder sofort verarbeiten, ohne zu überhitzen oder die Batterie zu entladen. Die Entwickler könnten sich für ein leichtes Modell wie die Nano-Version von YOLO11 weil seine geringe Anzahl von FLOPs eine reibungslose Leistung auf mobilen Prozessoren wie dem Qualcomm Snapdragon oder Apple Silicon.
  2. Autonome Drohnen-Navigation: Drohnen für die Präzisionslandwirtschaft eingesetzt werden, sind auf Computer, um Hindernisse detect und das Gelände zu kartieren. Da für diese Geräte strenge Gewichtsbeschränkungen gelten, die die Batteriegröße beschränken, optimieren die Ingenieure für niedrige FLOPs, um die Flugzeit zu maximieren und gleichzeitig die notwendigen Fähigkeiten zur Objekterkennung.

Berechnung von FLOPs mit Python

Sie können die Rechenkomplexität eines Ultralytics mit Hilfe der eingebauten Profiling-Tools bestimmen. Das folgende Ausschnitt lädt ein Modell und berechnet die für eine bestimmte Eingabegröße erforderlichen FLOPs.

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)

Diese Methode gibt eine zusammenfassende Tabelle aus, die die Anzahl der Parameter, die Gradienten und die GFLOPs (GigaFLOPs, oder Milliarden von Operationen) und hilft Ihnen zu beurteilen, ob das Modell Ihren Einsatzbeschränkungen entspricht.

FLOPs vs. verwandte Metriken

Es ist wichtig, FLOPs von anderen Metriken zu unterscheiden, die die Modellgröße und Geschwindigkeit beschreiben, da sie unterschiedliche Aspekte der Leistung messen.

  • Parameter vs. FLOPs: Die Modellgewichte oder Parameter bestimmen, wie viel Speicher (RAM) benötigt wird, um das Modell zu speichern. Im Gegensatz dazu messen die FLOPs die für die Ausführung des Modells erforderliche Rechenarbeit. A Modell kann zwar wenig Speicherplatz benötigen, aber sehr rechenintensiv sein, wenn es Parameter häufig wiederverwendet, wie es bei Rekurrente Neuronale Netze (RNNs).
  • MACs vs. FLOPs: Hardware-Spezifikationen beziehen sich oft auf Multiplikations-Akkumulations-Operationen (MACs). Ein MAC umfasst in der Regel eine Multiplikation, gefolgt von einer Addition, die als zwei Gleitkommaoperationen gezählt werden. Daher entspricht 1 GigaMAC ungefähr 2 GFLOPs.
  • Latenz vs. FLOPs: Während FLOPs den theoretischen Aufwand darstellen, ist die Inferenzlatenz die tatsächliche Zeit (in Millisekunden), die für die Verarbeitung einer Eingabe benötigt wird. Die Latenz wird von den FLOPs beeinflusst, aber auch von der Speicherbandbreite, Software Optimierungsbibliotheken wie TensorRTund die Hardware Architektur.

Grenzen der Metrik

FLOPs sind zwar eine nützliche Grundlage, sagen aber nichts über die gesamte Modellleistung aus. Sie berücksichtigen nicht Speicherzugriffskosten (Energie und Zeit für die Übertragung von Daten zum Prozessor), die häufig den Engpass in modernen Deep-Learning-Systemen. Außerdem werden Operationen wie Aktivierungsfunktionen (z. B. ReLU) oder Normalisierungsschichten eine niedrige FLOP-Zahl haben, aber dennoch Zeit verbrauchen. Daher sollten die FLOPs in Verbindung mit Benchmarking auf der Zielhardware, wie z. B. einem Raspberry Pi, verwendet werden, um ein genaues Bild der Leistung zu erhalten.

Werden Sie Mitglied der Ultralytics

Gestalten Sie die Zukunft der KI mit. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten