Kenarda çıkarım: gecikme bütçesi, nicemleme ve budama
Kenar cihazında çalışan bir görüntü hattının kadraj başına bütçeden nasıl tasarlandığını, nicemleme ile budamanın hangi ödünleri getirdiğini ve sıkıştırma sonrası kalite kaybının nasıl denetleneceğini öğretir.
Önkoşul: Computer Vision, Deep Learning, Neural Networks
BU DERSİN SONUNDA
- Kadraj başına gecikme bütçesini aşamalara bölerek ölçmek
- Çözünürlük, nicemleme ve budama kaldıraçlarını ödünleriyle sıralamak
- Eğitim sonrası nicemleme ile nicemlemeye duyarlı eğitim arasında karar vermek
- Sıkıştırma sonrası kalite kaybını alt gruplara ayırarak denetlemek
- 1
Teori
Kavramın çalışma mantığı
- 2
Örnek
Gerçek bir senaryo üzerinde gösterim
- 3
Lab
Uygulamalı alıştırma
- 4
Test
Kısa ölçüm
- 5
Proje
Rotadaki projeye katkı
Kısa cevap
Kenar cihazında çalışan bir görüntü hattının tasarımı modelden değil bütçeden başlar: kadraj başına kaç milisaniye, kaç megabayt bellek ve kaç watt harcayabileceğinizi yazmadan hangi sıkıştırmanın gerekli olduğunu bilemezsiniz. Nicemleme ve budama bu bütçeyi karşılamak için kullanılan araçlardır ve ödünün yönü sabittir — bellek ile gecikme düşer, kalite riski artar.
Teori: bütçe kadrajdan türer#
Gerçek zamanlı kısıt kamera kadraj hızından gelir. Saniyede işlenmesi gereken kadraj sayısı, kadraj başına düşen toplam süreyi belirler ve bu süre yalnızca modele ait değildir: yakalama, renk dönüşümü ve yeniden boyutlandırma, çıkarım, son işleme (eşikleme, örtüşen kutuların bastırılması, izleme) ve kararın hatta iletilmesi aynı bütçeyi paylaşır. Hattı aşama aşama ölçmeden modeli hızlandırmaya girişmek, bütçenin çoğu zaman ön işlemede veya bellek kopyalarında tükendiğini hiç fark etmemek demektir.
İkinci ayrım gecikme ile verim arasındadır. Yığın büyütmek cihazın saniyede işlediği kadraj sayısını artırır ama tek bir kadrajın kararına ulaşma süresini uzatır; hat üstü bir ret kararında önemli olan ikincisidir. Ölçüm de buna göre kurulur: ortalama yerine yüzdelik değerler raporlanır, ilk kadrajlar ısınma sayıldığı için atılır ve ölçüm cihaz ısındıktan sonra tekrarlanır — termal kısılma altında aynı model daha yavaş koşar.
Kaldıraçlar ve ödünleri#
| Kaldıraç | Ne düşer | Neyden feragat edilir | Dikkat |
|---|---|---|---|
| Girdi çözünürlüğünü düşürmek | Evrişimli omurgada hesap ve bellek, kabaca piksel sayısıyla orantılı olarak | Küçük nesne ve ince kusur duyarlılığı | Genelde en büyük ve en hızlı geri alınabilen kaldıraç; önce bunu ölçün |
| Daha küçük omurga seçmek | Hesap ve model boyutu | Zor örneklerdeki ayrım gücü | Mimari değişikliği yeniden eğitim ve yeniden ölçüm gerektirir |
| Nicemleme | Bellek, bellek bant genişliği ve destekli donanımda gecikme | Sayısal hassasiyet, uçlarda kalite | Kazanç, hedef donanımın tamsayı yolunu desteklemesine bağlıdır |
| Budama ve seyreklik | Parametre sayısı | Kapasite; ardından ince ayar gerekir | Yapılandırılmamış seyreklik, donanım desteği olmadan hız getirmez |
| Kadraj atlamak, izleme eklemek | Çıkarım çağrısı sayısı | Tepki gecikmesi ve hızlı hareketlerde takip | Hat hızı sabitse etkilidir; kaçan olay riskini ayrıca hesaplayın |
| Ucuz tetikleyici artı pahalı model | Ortalama yük | Tasarım karmaşıklığı | Tetikleyicinin kaçırdığı kadraj modele hiç ulaşmaz; onu ayrı izleyin |
Nicemleme ne yapar#
Nicemleme, ağırlıkları ve çoğu kurulumda ara etkinlikleri daha az bitle temsil etmektir. Tanım gereği float32 bir sayı 4 bayt, int8 bir sayı 1 bayt yer kaplar; dolayısıyla ağırlık belleği dörtte birine iner. Gecikme kazancının iki kaynağı vardır: taşınan bayt azaldığı için bellek bant genişliği baskısı düşer ve donanım tamsayı çarpımını destekliyorsa aritmetik daha hızlı koşar. Destek yoksa kazanç yalnızca bellek tarafında kalır; bu yüzden hedef donanımın hangi veri tipini desteklediğini önceden bilmek gerekir.
Eğitim sonrası nicemleme modeli yeniden eğitmez; ağırlık ve etkinlik aralıklarını bir kalibrasyon setiyle ölçüp ölçek katsayıları çıkarır. Kalibrasyon seti eğitim dağılımından gelmeli ve uç koşulları temsil etmelidir: içinde gece kadrajı olmayan bir kalibrasyon seti, gece koşullarında etkinlikleri kırpar. Nicemlemeye duyarlı eğitim ise nicemleme hatasını eğitim döngüsüne sokar; maliyeti yeniden eğitimdir, karşılığı düşük bit genişliklerinde daha az kalite kaybıdır. Sıralama nettir: önce eğitim sonrası nicemlemeyi ölçün, kalite kaybı kabul sınırınızın üstündeyse duyarlı eğitime geçin.
Budama ve seyreklik#
Budama, katkısı düşük ağırlıkları sıfırlamaktır. Yapılandırılmamış budama tek tek ağırlıkları siler; dosya sıkıştırılabilir hale gelir ama yoğun matris çarpımı aynı biçimde koştuğu için, donanım ve çalışma zamanı seyrek çarpımı desteklemiyorsa gecikme değişmez. Yapılandırılmış budama bütün kanalları veya blokları kaldırır; ağ gerçekten küçülür ve kazanç özel bir seyrek çekirdek gerektirmeden gelir, ama kapasite kaybı daha keskindir ve ardından ince ayar gerekir. Kenar hedefi olan bir projede varsayılan tercih yapılandırılmış budamadır.
Karar sırası#
- 1Bütçeyi yazın
Kadraj başına milisaniye, tepe bellek ve güç sınırını sayı olarak yazın. Aynı belgeye kalite için kabul edilebilir en düşük değeri de yazın; bu sınır sonradan değil baştan belirlenir.
- 2Hattı aşama aşama ölçün
Isınma kadrajlarını attıktan sonra yakalama, ön işleme, çıkarım, son işleme ve iletim sürelerini ayrı ayrı kaydedin. En büyük kalem neredeyse çalışma orada başlar.
- 3Önce girdiyi küçültün
Çözünürlük düşürme ve kadraj atlama gibi girdi tarafı kaldıraçları model değiştirmeden denenir; ölçmesi ve geri alması en kolay olanlar bunlardır.
- 4Sonra temsili küçültün
Eğitim sonrası nicemleme uygulayıp gecikme, bellek ve kalite metriğini birlikte raporlayın. Kalite kaybı sınırı aşarsa duyarlı eğitime ya da daha yüksek bit genişliğine dönün.
- 5En son mimariye dokunun
Omurga değiştirme ve yapılandırılmış budama yeniden eğitim ile yeniden ölçüm maliyeti taşıdığı için sıranın sonundadır.
Sık yapılan hata#
Yaygın bir yanlış ifade, nicemlemenin "hızı bellekten feragat ederek aldığı"dır; ödün bunun tersidir — nicemleme belleği düşürür, feragat edilen şey sayısal hassasiyet ve dolayısıyla kalitedir. İkinci sık hata kalite kaybını yalnızca toplam metrikte aramaktır: kayıp genellikle homojen dağılmaz, küçük nesnelerde ve düşük kontrastlı kadrajlarda toplanır. Üçüncüsü hız ölçümünü geliştirme makinesinde yapıp hedef cihazda doğrulamamaktır; farklı çalışma zamanı ve farklı bellek yolu, kaldıraçların sıralamasını bile değiştirebilir.
LAB · UYGULAMALI ALIŞTIRMA
Gecikme bütçesini çıkarıp iki kaldıracı tek tek ölçün
- 1Hedef kadraj hızından kadraj başına düşen milisaniyeyi hesaplayın ve tepe bellek ile kabul edilebilir en düşük kalite değerini aynı sayfaya yazın.
- 2Mevcut hattınızı beş aşamaya bölün (yakalama, ön işleme, çıkarım, son işleme, iletim); ilk kadrajları ısınma olarak atıp her aşamanın ortanca ve 95. yüzdelik süresini hedef cihazda kaydedin. Hedef cihaz elinizde yoksa ölçümü kendi makinenizde sabit bir çekirdek sayısıyla yapın ve sonucu cihaza taşınamayan bir ön ölçüm olarak etiketleyin.
- 3Bütçeyi en çok zorlayan aşamayı işaretleyin; yalnızca girdi çözünürlüğünü bir kademe düşürüp aynı ölçümü ve kendi doğrulama setinizdeki kalite metriğini yineleyin.
- 4Temel modele eğitim sonrası nicemleme uygulayın; kalibrasyon setini eğitim dağılımından, uç koşulları da içerecek biçimde seçin ve bellek, gecikme, kalite üçlüsünü birlikte kaydedin.
- 5Üç yapılandırmayı (temel, düşük çözünürlük, nicemlenmiş) tek tabloda karşılaştırın ve kalite metriğini en az iki alt gruba (küçük nesneler, düşük kontrastlı kadrajlar) ayrıştırın.
- 6Bütçeyi karşılayan yapılandırmalar arasından kalite kaybı en düşük olanı seçin ve gerekçesini bir paragrafta yazın.
Beklenen çıktı
Aşama bazlı gecikme dökümü ve üç yapılandırmanın bellek, gecikme ile alt gruplara ayrılmış kalite karşılaştırması üzerine gerekçeli bir seçim.
Sık sorulan sorular
Nicemleme her zaman hızlandırır mı?
Hayır. Bellek ve model boyutu tanım gereği düşer, ama gecikme kazancı hedef donanımın tamsayı yolunu ve çalışma zamanının o çekirdekleri gerçekten kullanmasını gerektirir. Destek yoksa çalışma zamanı ağırlıkları geri açar ve gecikme bazen artar; bu yüzden ölçüm geliştirme makinesinde değil hedef cihazda yapılır.
Çözünürlük düşürmek yerine modeli küçültmek daha doğru değil mi?
İkisi farklı şeyleri kaybettirir: çözünürlük düşürmek küçük nesne duyarlılığını, model küçültmek zor örneklerdeki ayrım gücünü zayıflatır. Sıralama ölçüm kolaylığından gelir — çözünürlük değişikliği yeniden eğitim gerektirmez ve geri alınabilir, bu yüzden önce o denenir.
Budama ile nicemlemeyi birlikte uygulayabilir miyim?
Uygulayabilirsiniz ama aynı turda değil. Her birini tek başına uygulayıp gecikme ve kalite etkisini kaydedin; ancak ayrı ayrı etkilerini bildikten sonra birleştirin, yoksa ortaya çıkan kalite kaybının kaynağını ayırt edemezsiniz.
LEARN
Computer Vision Engineer rotasına devam et
Dersler tek başına da okunabilir, ama sıralı ilerlemek önkoşul boşluklarını kapatır.
