Makine öğreniminde FLOP'ları anlayın! Model karmaşıklığını nasıl ölçtüğünü, verimliliği nasıl etkilediğini ve donanım seçimine nasıl yardımcı olduğunu öğrenin.
FLOP'lar veya Kayan Nokta İşlemleri, hesaplama karmaşıklığını ölçmek için temel bir ölçüt olarak hizmet eder. makine öğrenimi modelleri, özellikle derin öğrenme alanı. Bu ölçüm, toplama gibi matematiksel işlemlerin toplam sayısını hesaplar, ondalık sayıları içeren çıkarma, çarpma ve bölme işlemleri - tek bir ileri geçişi tamamlamak için gerekli sinir ağı. FLOP sayısını belirleyerek, Mühendisler bir modeli çalıştırmak için gereken işlem gücünü tahmin edebilir, bu da onu donanım için hayati bir istatistik haline getirir seçimi ve optimizasyonu. Dosya boyutu veya parametre sayısından farklı olmakla birlikte, FLOP'lar aşağıdakiler için teorik bir temel sağlar Bir modelin ne kadar "ağır" olduğu, işlemcilerde enerji tüketimi ve yürütme hızı ile doğrudan ilişkilidir gibi CPU veya GPU.
Bir modelin hesaplama maliyetini anlamak, verimli bir model için çok önemlidir. Yapay zeka geliştirme. Daha düşük bir FLOP sayısı genellikle bir modelin bir tahmin üretmek için daha az hesaplama gerektirdiğini gösterir, bu da aşağıdakiler için kritik öneme sahiptir kısıtlı kaynaklara sahip ortamlar.
FLOP'ların pratik etkisi en çok, modeller araştırmadan gecikme süresinin yüksek olduğu üretim ortamlarına geçtiğinde görülür. ve güç sınırlıdır.
Yerleşik profil oluşturma araçlarını kullanarak bir Ultralytics modelinin hesaplama karmaşıklığını belirleyebilirsiniz. Bu Aşağıdaki kod parçacığı bir model yükler ve belirli bir girdi boyutu için gereken FLOP'ları hesaplar.
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)
Bu yöntem, parametre sayısını, gradyanları ve GFLOP'ları (GigaFLOPs veya milyarlarca operasyon), modelin size uyup uymadığını değerlendirmenize yardımcı olur. dağıtım kısıtlamaları.
FLOP'ları model boyutunu ve hızını tanımlayan diğer ölçütlerden ayırt etmek önemlidir, çünkü bunlar farklı performans yönleri.
FLOP'lar faydalı bir temel sağlarken, model performansının tüm hikayesini anlatmazlar. Şunları hesaba katmazlar bellek erişim maliyetleri (verileri işlemciye taşımak için harcanan enerji ve zaman), ki bu genellikle modern derin öğrenme sistemleri. Ayrıca, operasyonlar aktivasyon fonksiyonları gibi (örn. ReLU) veya normalleştirme katmanları düşük FLOP sayılarına sahiptir ancak yine de zaman tüketirler. Bu nedenle, FLOP'lar birlikte kullanılmalıdır gibi hedef donanımlar üzerinde gerçek dünya kıyaslaması ile Raspberry Pi, doğru bir resim elde etmek için performans.

