Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

FLOPs

FLOP'lar, bir modelin tek bir ileri geçiş için ihtiyaç duyduğu kayan nokta işlemlerini sayar ve hesaplama maliyetinin standart bir ölçüsüdür. Nasıl sayılacakları, karşılaştırılacakları ve azaltılacakları.

FLOPs (kayan nokta işlemleri), bir sinir ağının tek bir görüntü ya da belirteç gibi bir girdiyi işlerken, çoğunlukla katmanları içindeki çarpma ve toplama işlemlerini sayar. Bu sayı, modelin donanımdan bağımsız hesaplama maliyetini ölçer; bu nedenle farklı mimarilerin ne kadar ağır olduğunu karşılaştırmanın standart yoludur. Görüntü modelleri genellikle belirtilen bir girdi boyutunda GFLOPs (milyarlarca işlem) cinsinden ifade edilir; büyük bir modeli eğitmek için kullanılan toplam hesaplama miktarı da FLOPs cinsinden belirtilir.

FLOPs ve FLOPS ile MAC'ler Arasındaki Fark#

Birbirine benzeyen üç terimi karıştırmak kolaydır:

  • FLOPs (küçük s): Kayan nokta işlemlerinin sayısıdır; modelin ve girdi boyutunun bir özelliğidir. Yapılması gereken iş miktarını ölçer.
  • FLOPS (büyük S): Saniyedeki kayan nokta işlemi sayısıdır; GPU gibi bir donanımın özelliğidir. İşin ne kadar hızlı yapılabileceğini ölçer. Modelin FLOPs değerini bir aygıtın tepe FLOPS değerine bölmek, mümkün olan en kısa çalışma süresini verir.
  • MAC'ler: Çarp-biriktir işlemleridir. Bir MAC, bir çarpma ve bir toplama işleminden oluşur; dolayısıyla bir MAC iki FLOPs'a eşittir. Bazı makaleler ve araçlar MAC'leri FLOPs adıyla bildirir, bu da sayılarını yarıya indirir.

FLOPs Nasıl Sayılır#

Bir ağın FLOPs değerinin çoğu matris çarpımlarından ve evrişimlerden gelir. n girdili ve m çıktılı tam bağlantılı bir katmanın maliyeti, girdi başına yaklaşık 2 × n × m FLOPs'tur. Bir evrişim, her çıktı değeri için bir nokta çarpımı hesaplar; bu nedenle maliyeti 2 × C_in × k × k × C_out × H_out × W_out olur. Burada k çekirdek boyutunu, H_out × W_out ise çıktı çözünürlüğünü belirtir. Aktivasyonlar, normalizasyon ve toplama işlemleri karşılaştırıldığında çok az maliyet ekler. Aşağıdaki örnek, bir evrişimin maliyetini formülle hesaplar ve PyTorch'un yerleşik FLOP sayacıyla doğrular:

import torch
from torch.utils.flop_counter import FlopCounterMode

# A 3x3 convolution mapping 64 channels to 128 on an 80x80 feature map
conv = torch.nn.Conv2d(64, 128, kernel_size=3, padding=1, bias=False)
x = torch.randn(1, 64, 80, 80)

# Each output value needs 64*3*3 multiply-accumulates (MACs); 1 MAC = 2 FLOPs
macs = 128 * 80 * 80 * 64 * 3 * 3
print(f"By formula: {2 * macs / 1e9:.3f} GFLOPs ({macs / 1e9:.3f} GMACs)")

# PyTorch's FLOP counter traces the real forward pass
with FlopCounterMode(display=False) as counter:
    conv(x)
print(f"Counted:    {counter.get_total_flops() / 1e9:.3f} GFLOPs")

Her iki satır da 0,944 GFLOPs yazdırır; formül satırı aynı katmanı 0,472 GMACs olarak gösterir ki bu FLOPs değerinin yarısıdır. Transformer modelleri için ileri geçiş, belirteç başına ve parametre başına yaklaşık 2 FLOPs; eğitim ise yaklaşık 6 FLOPs maliyetindedir. Bu, eğitim çalıştırmasının toplam hesaplamasını 6 × parametre sayısı × eğitim belirteci sayısı olarak tahmin eden ölçekleme yasaları araştırmasından gelen pratik bir kuraldır.

FLOPs ve Gerçek Dünya Hızı#

FLOPs, hızı yalnızca kabaca öngörür. Gecikme ayrıca bellek trafiğine, her işlemin ne kadar iyi paralelleştirildiğine ve donanımda bu işlem için optimize edilmiş çekirdekler bulunup bulunmadığına bağlıdır. ShuffleNet V2 makalesi, benzer FLOPs değerine sahip ağların aynı cihazda belirgin biçimde farklı hızlarda çalışabildiğini gösterdi; FLOPs açısından ucuz olan derinlik bazlı evrişimler de çoğu zaman aritmetik işlemden çok bellek bant genişliğiyle sınırlanır. Optimizasyonlar da farklı etkenler üzerinde çalışır. Model budama ve daha küçük girdi boyutları işlem sayısını azaltırken model nicemleme işlem sayısını değiştirmez; her işlemi 8 bit tamsayılarla hesaplayarak ucuzlatır. Bu nedenle FLOPs, hedef cihazdaki çıkarım gecikmesini ölçmeden önce ilk eleme ölçütü olarak en kullanışlıdır; örneğin Ultralytics'in kıyaslama modu ile:

Model Seçiminde FLOPs#

Model aileleri, ekiplerin doğruluk ile hesaplama kaynakları arasında denge kurabilmesi için çeşitli boyutlarda sunulur; Ultralytics Academy'deki model boyutu dersi bu tercihi açıklar. 640×640 girdi boyutunda Ultralytics YOLO26 ailesi YOLO26n için 5,5 GFLOPs'tan YOLO26x için 194,4 GFLOPs'a kadar uzanır ve model.info() yüklenmiş herhangi bir modelin GFLOPs değerini yazdırır. Pille çalışan dronlar ve telefonlar en küçük varyantları kullanırken, bulut sunucuları en büyük varyantları çalıştırabilir. Bir evrişimli ağın maliyeti piksel sayısıyla orantılı olarak arttığından, girdi boyutu FLOPs değerini model boyutu kadar değiştirir:

from ultralytics import YOLO
from ultralytics.utils.torch_utils import get_flops

# Load the smallest YOLO26 detection model and fuse its layers, as for inference
model = YOLO("yolo26n.pt")
model.fuse()

# Count GFLOPs for the same model at three input resolutions
for imgsz in [320, 640, 1280]:
    print(f"{imgsz}px: {get_flops(model.model, imgsz):.1f} GFLOPs")

Döngü 1,3, 5,5 ve 23,4 GFLOPs yazdırır: girdi kenarının her iki katına çıkışı sayıyı yaklaşık dörtle çarpar. Bu nedenle YOLO26n'i 1.280 pikselde çalıştırmak, dört kat fazla parametreye sahip YOLO26s modelini 640 pikselde çalıştırmanın 20,9 GFLOPs değerinden daha maliyetlidir.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla