FieldNet 1'i Eğitmek: 39 MB'a Sığan 5.077 Türlük Yaban Hayatı Sınıflandırıcısı
RealDex, bir telefona zorla sığdırılmış bilimsel bir görü transformatörü olan BioCLIP ile yayınlandı. Sonra onu değiştirdim. FieldNet 1, 5.077 hayvan türü üzerinde eğittiğim bir MobileNetV4 sınıflandırıcısı: top-1 doğruluğu %46,8'den %61,3'e çıkardı, ilk indirme boyutunu yarıdan fazla küçülttü ve INT8 niceleme sonrası neredeyse hiç doğruluk kaybetmedi. Bu, başarısız eğitim turunun, hileli kıyaslamanın ve neredeyse üç güne mal olan USB diskin hikâyesi.
1. İlk Modelden Sonra Gelen Soru
RealDex'in ilk sürümü bir paketleme problemiydi. BioCLIP, bir React Native kamera uygulaması için değil, bilimsel ölçekte biyolojik temsil öğrenimi için tasarlanmış bir görü transformatörü. Onu bir iPhone'a ve bir Android katlanabilire taşımak için grafiği dönüştürdüm, mobil çalışma zamanlarının reddettiği operatörleri değiştirdim, ağırlıkları INT8'e niceledim ve yanına ayrı bir tür vektörü veritabanı koydum. Çalıştı. O zaman başarı bu gibi görünüyordu.
Ama bir modeli yayınlamak ile doğru modeli seçmek iki ayrı iştir. BioCLIP türleri karar vererek değil, karşılaştırarak tanıyordu: fotoğrafı 512 boyutlu bir vektöre çeviriyor, sonra her tür için saklanan tek bir prototipe kosinüs benzerliğiyle bakıyordu. Kodlayıcı donmuştu. RealDex'in önemsediği tam 5.077 türü ayırt etmek için hiç eğitilmemişti. Güven skorları sık sık zayıftı, transformatör grafiği CPU'da kalıyordu ve ilk açılıştaki toplam yapay zekâ indirmesi yaklaşık 105 MB'a ulaşıyordu. Böylece rahatsız edici soruyu sordum: BioCLIP'i daha da optimize etmek yerine, RealDex onu değiştirmeli mi?
Cevap evetti ve gerekçesi yapısaldı. Donmuş bir kodlayıcı ile en yakın prototip eşleştirmesi, tasarımı gereği doğruluktan feragat eder; çünkü hattın hiçbir parçası gerçek etiket uzayı üzerinde eğitilmez. Eğitilmiş bir sınıflandırıcı ise doğrudan karar verir. Ayrıca mobil hızlandırıcılara çok daha iyi oturur, çünkü telefon GPU delegeleri evrişimli grafikleri çalıştırmak için yapılmıştır. Plan, RealDex'in mevcut YOLO dedektörünü bir kapı olarak ve bulut doğrulamasını yedek olarak korumak, yalnızca ortadaki parçayı değiştirmekti: hayvana ismini veren şeyi.
2. Projeyi Neredeyse Bitiren Üç Problem
Zor kısım modeli eğitmek değildi. Üç başarısızlıktı ve her biri, zararını verene kadar görünmez kaldı:
Kıyaslama Hileliydi
İlk karşılaştırmam BioCLIP'in lehineydi ve bu karşılaştırma geçersizdi. BioCLIP'in tür prototiplerini oluşturmak için kullanılan görüntülerin bir kısmı, değerlendirme havuzunda da yer alıyordu. Yani BioCLIP fiilen ezberlemiş olduğu fotoğraflar üzerinde test ediliyor, yeni modelim ise temiz test ediliyordu. Bu, yayınlanan uygulamadaki bir hata değildi. Deneydeki bir hataydı; daha kötüsü, çünkü kararlar deneye bakılarak veriliyor. Her BioCLIP prototipini yalnızca eğitim görüntülerinden yeniden ürettim ve karşılaştırmayı tekrarladım.
INT8 Niceleme Modeli Çökertti
İlk eğitilen model tam hassasiyette %33,0 top-1 aldı. Telefon için INT8'e sıkıştırıldığında yaklaşık %21'e düştü. On iki puan dönüşümde kayboldu. Sebep, düz sınıf skorlarıydı: model doğru türü sıklıkla üst sıralara koyuyordu, ama adaylar arasındaki sayısal farklar niceleme gürültüsünün sıralamayı bozacağı kadar küçüktü. Sıkıştırılamayan doğru bir model, mobil bir model değildir.
Bir USB Disk GPU'yu Açlıktan Öldürdü
RTX 4080 çoğunlukla boş beklerken eğitim sürünüyordu. Veri kümesi hâlâ harici bir USB sabit diskteydi ve saniyede yaklaşık 31 görüntü besliyordu. Aynı çalışma kümesi dahili bir SSD'de saniyede yaklaşık 301 görüntü besledi. USB hızında kalan epoch'ların 70 saatten fazla süreceği öngörülüyordu. Veriyi kopyalamak 11,7 dakika sürdü. Ders gösterişsiz ve açıkça söylenmeye değer: tek GPU'lu bir eğitim makinesinde darboğaz genellikle GPU değildir.
3. Mercek Altında: Başarısızlıklar Gerçekte Nasıl Göründü
Bunların hiçbiri temiz gerçekleşmedi ve her başarısızlığın kendine özgü şekli, saklanmaya değer olan kısım:
4. FieldNet 1 Nasıl İnşa Edildi
Dört aşama; her biri, bir sonrakinin anlam kazanması için doğru olmak zorundaydı:
Kaynak, yaklaşık 44 GB'lık iNaturalist 2021 train_mini arşiviydi. Bir dönüştürme betiği yalnızca hayvan kategorilerine eşlenen sınıfları tuttu; bitkileri, mantarları, protozoaları ve diğer âlemleri attı. Geriye 5.077 hayvan türü kaldı: 2.526 böcek, 1.486 kuş, 313 sürüngen, 246 memeli, 183 balık, 170 amfibi ve 153 örümcek. Kusursuz dengeyi zorlamak yerine her türü 50 görüntüyle sınırladım ve eğitim başlamadan önce her türden 5 görüntüyü, dokunulmamış bir nihai test kümesi olmak üzere ayırdım.
FieldNet 1, ImageNet ile ön eğitilmiş bir MobileNetV4-Conv-L omurgasından başladı; yani sıfırdan değil, ince ayarla eğitildi. İki ısınma epoch'u yalnızca yeni sınıflandırma başlığını eğitti; bu, rastgele başlatılmış bir başlık yolunu bulurken ön eğitilmiş ağırlıkları korur. Ardından tam omurga 256x256 girdiyle 38 epoch daha açıldı: RandAugment, Mixup, CutMix, rastgele silme, etiket yumuşatma, stokastik derinlik, kosinüs öğrenme oranı çizelgesi ve ağırlıkların üstel hareketli ortalaması ile. Verimli tur 7 saat 20 dakika sürdü.
Niceleme çöküşünü düzeltmek için Mixup kapalı ve etiket yumuşatma sıfır olacak şekilde altı son epoch ekledim; tüm ağ, sert tek-sıcak hedeflere karşı eğitildi. Bu, kazanan skor ile rakipleri arasındaki sayısal farkı genişletir; nicelemenin ihtiyaç duyduğu şey tam olarak budur. Eğitim kaybı yaklaşık 3,7'den 0,75'e düştü, ama bu sayı tek başına pek bir şey kanıtlamaz — yumuşatılmış hedefleri kaldırmak kaybı mekanik olarak düşürür. Gerçek kanıt ihracattan sonra geldi: FP16 ve INT8 birbirinden 0,14 puan içinde kaldı.
FieldNet 1, yanında çalışmak yerine erişim tabanlı yolun yerini aldı; bu da 10,5 MB'lık prototip veritabanını tamamen kaldırdı. Uygulama, ilk kurulumdan sonra tek bir 39 MB'lık INT8 dosyası indirir ve etkinleştirmeden önce SHA-256 özetini doğrular; yanında ayrıca özetlenen bir etiket dosyası ve coğrafi öncül vardır. Dağıtım bir Firebase Remote Config bayrağının arkasında durur, böylece model kapalı yayınlanıp platform ve sürüm bazında açılabilir; ve her tahmin, uygulama bir tür iddia etmeye razı olmadan önce bir güven kapısından geçer.
5. Ne Değişti
Ölçülen Sonuçlar
FieldNet 1 INT8, 5.077 tür genelinde %61,3 top-1 ve %81,7 top-5'e ulaşıyor; sızıntısız BioCLIP referansı ise %46,8 top-1 ve %73,4 top-5'te. Bu, 14,5 puanlık, yani göreli olarak yaklaşık %31'lik bir kazanç. INT8, FP16'ya karşı yalnızca 0,14 puana mal olurken dosyayı 39 MB'a indiriyor. İlk açılıştaki toplam yapay zekâ indirmesi yaklaşık 105 MB'dan yaklaşık 46 MB'a düştü. Bu etiket uzayında rastgele tahmin yaklaşık %0,02 alırdı.
Dürüst Geliştirici Hissi
"%61, neyin %61'i olduğunu bilmeden etkileyici gelmiyor. Bu, uygulamanın gerçekten yayınladığı YOLO dedektöründen gelen kırpmalar üzerinde değerlendirilen, bir telefonda çevrim dışı çalışan 39 MB'lık bir dosyadan gelen 5.077 ince taneli yaban hayatı sınıfı. Eğitim bittiğinde hiçbir şey hissetmedim. Karşılaştırma tablosu ekrana geldiğinde ve adil BioCLIP kolonu açıkça, tartışmasız daha düşük çıktığında hissettim."
6. Teknik Kayıt
Grafikler, yapıt dökümleri, kalibrasyon eşikleri ve abartmaya razı olmadığım ölçümler.
Her şeyi belirleyen kıyaslama
Aşağıdaki her sayı tek bir protokolden geliyor. Eğitim başlamadan önce veri kümesinden her türden 5 görüntü çıkardım; bu, dokunulmamış bir test kümesi üretti. O kareleri yayınlanan YOLOv8n dedektöründen geçirdim ve dedektörün hayvan bulduğu 10.918 kırpmayı tuttum. Sonra ihraç edilen her model aynı 10.918 kırpmayı gördü ve her modelin sınıf indekslerini kendi eşleşen etiket dosyasına karşı kontrol ettim.
Buradaki BioCLIP referansı yeniden kurulmuş olan. Tür prototipleri, orijinal prototiplerin değerlendirme havuzundan görüntü emdiğini fark ettikten sonra yalnızca eğitim görüntülerinden yeniden üretildi.
Dokunulmamış test kümesinden 10.918 YOLO kırpması
FieldNet 1, sızıntısız BioCLIP referansına karşı 14,5 puan top-1 doğruluk kazanıyor. Yayınlanan model INT8; FP16'ya karşı 0,14 puana mal oluyor, dosya boyutunun yarısında.
Nihai model için bilerek bir FP32 doğruluk değeri yayınlamadım. Gerçekten yayınlanabilecek yapıtlar olan FP16 ve INT8'i değerlendirdim. Ölçmediğim üçüncü bir sayıyı alıntılamak dolgu olurdu.
Keskinleştirme dağıtımı neden kurtardı
Başarısız tur, anlaşılmaya değer bir örüntü gösterdi; çünkü bu örüntü yalnızca ihracattan sonra ortaya çıkıyor. Tam hassasiyetli model vasat ama işlevseldi. Sıkıştırılmış iki sürüm de kullanılamazdı.
Sayısal biçime göre top-1 doğruluk
Solda: terk edilen ilk tur; sıkıştırma 12 puan yok etti. Sağda: altı keskinleştirme epoch'undan sonra iki yayın biçimi 0,14 puan içinde uyuşuyor. Aynı mimari, farklı eğitim finali.
Mekanizma bir kez görülünce basit. Mixup ve etiket yumuşatma, modeli olasılığı kasten yaymaya eğitir; çünkü yumuşak hedefler aşırı güveni azaltır ve genellemeyi iyileştirir. Aynı zamanda üst adaylar arasındaki mesafeyi sıkıştırırlar. Sonra INT8 niceleme bu zaten daralmış farkları yuvarlar ve sıralama karışır.
Altı keskinleştirme epoch'u bunu tersine çevirdi. Mixup kapalı, etiket yumuşatma sıfır, tüm ağ eğitilebilir, hedefler sert tek-sıcak. Model karar vermeyi öğrendi. Eğitim kaybı yaklaşık 3,7'den 0,75'e düştü; bunu açıkça bir atılım olarak sunmak istemiyorum — yumuşatılmış hedefleri kaldırmak, model iyileşsin ya da iyileşmesin, kaybı aritmetik olarak düşürür. Önemli olan sonuç, FP16 ve INT8'in yakınsamasıydı.
Doğruluğa karşı boyut
Tüm projenin tezi tek bir grafikte. İyi olan yön yukarı ve sola.
BioCLIP, 88 MB'lık kodlayıcısının yanında 10,5 MB'lık bir prototip veritabanına da ihtiyaç duyar; yani gerçek ayak izi çizilenden daha sağdadır. FieldNet 1 INT8'in ihtiyacı 0,5 MB'lık bir etiket dosyası.
Erişim tabanlı yolu kaldırmak, bütün bir yapıt sınıfını kaldırdı. FieldNet 1 onun yerine bir coğrafi öncül taşıyor; bu da yerini aldığı prototip veritabanından küçük.
Depolama darboğazı
Projedeki en pahalı hatanın makine öğrenmesiyle hiçbir ilgisi yoktu.
GPU'ya ulaşan saniyedeki görüntü sayısı
11,7 dakikalık bir dosya kopyalama, kalan eğitim için öngörülen 70+ saati 7 saat 20 dakikaya çevirdi. Kısıt hiçbir zaman GPU değildi.
Eğitim zaman çizelgesi
Turlar ve duvar saati
- Yığın 256 denemesi, epoch 1–2
- 1 sa 46 dk'ya kadar, çözülmede takıldı
- Yığın 128 devam turu, epoch 3–40
- 7 sa 19 dk 53 sn, takılma yok
- Toplam eğitim duvar saati
- yaklaşık 9 saat
- İhracat ve değerlendirme
- yaklaşık 2 sa 45 dk
- Donanım
- RTX 4080, Core i5-13600K, 32 GB DDR5
- Doğrudan proje maliyeti
- 100 $ Claude aboneliği artı elektrik
Bu başarısızlıkların her biri tek bir sebeple kurtarılabilirdi: hat her epoch'tan sonra kontrol noktası kaydediyordu. Bozuk bir arşiv, dosyaları çoğaltan büyük-küçük harf duyarsız globbing, ihracatta eksik bir sunum imzası, bir log yolunu çökerten bir Unicode karakteri ve tek bir Python ortamı üzerinde kavga eden üç kütüphane — her biri zamana mal oldu, hiçbiri tura mal olmadı.
Eğitim tarifi
FieldNet 1 yapılandırması
- Omurga
- MobileNetV4-Conv-L, ImageNet ön eğitimli
- Girdi çözünürlüğü
- 256 x 256
- Sınıflar
- 5.077 hayvan türü
- Isınma
- 2 epoch, yalnızca sınıflandırma başlığı
- İnce ayar
- 38 epoch, tam omurga
- Keskinleştirme
- 6 epoch, sert hedefler
- RandAugment
- 2 işlem, büyüklük 9
- Mixup / CutMix
- alfa 0,2 / etkin
- Rastgele silme
- etkin
- Etiket yumuşatma
- ince ayarda açık, keskinleştirmede sıfır
- Stokastik derinlik
- drop_path etkin
- EMA azalması
- 0,9998
- Çizelge
- kosinüs, her epoch'ta kontrol noktası
Bu girdilerden ikisi diğerlerinden daha fazla yük taşıdı. Yalnızca başlığın ısınması gerekiyor, çünkü rastgele başlatılmış 5.077 yönlü bir sınıflandırıcı başta büyük ve kötü nişan alınmış gradyanlar üretir; bunların ön eğitilmiş bir omurgaya ulaşması, öğrenilmesi çok hesap gücü tutmuş öznitelikleri bozar. Üstel hareketli ortalama ise gürültülü güncellemeler boyunca ağırlıkların yumuşatılmış bir kopyasını tutar; böylece ihraç edilen model, son adımın nereye denk geldiğini değil eğitimin eğilimini yansıtır.
Veri kümesi bileşimi
iNaturalist 2021 train_mini'den tutulan 5.077 sınıf
Dağılım ağır biçimde böceklere kayıyor ve bu, verideki bir kusur değil problemin gerçek bir özelliği. Böcekler hayvan biyoçeşitliliğine gerçekten hâkim. Bu da manşet doğruluk değerinin kümedeki en zor ve görsel olarak en benzer sınıflar tarafından belirlendiği anlamına geliyor; bunu değerlendirilmek için adil bir yol olarak görüyorum.
Entegrasyon ve sessiz saçmalığı önleyen koruma
FieldNet 1, ilk kurulumdan sonra ve kamera ilk kez açılmadan önce indirilir. Üç dosya tek bir sürümlenmiş paket olarak gelir: INT8 model, etiket dosyası ve coğrafi öncül. Her biri SHA-256 özetiyle doğrulanır ve uyuşmazlık, yükleme denemesi yerine reddetmeye yol açar.
Etiket dosyasındaki özet kontrolü rutin bir hijyen değil. Yük taşıyan parça o.
Güven bir kapıdır, süs değil
Erişimi sınıflandırmayla değiştirmek gerçek bir gerileme getirdi ve bunu açıkça söylemek gerekiyor. BioCLIP bir kırpmayı yeni üretilmiş prototiplerle karşılaştırabiliyordu, yani onu genişletmek yeniden eğitim gerektirmiyordu. FieldNet 1'in tam olarak 5.077 çıktısı var. Bu kümenin dışındaki bir hayvan gösterildiğinde, olasılığı yine bildiği türler arasında dağıtmak zorunda.
Bu yüzden RealDex, üç koşul birlikte sağlanmadıkça bir tür iddia etmeyi reddediyor.
Kalibrasyon eşikleri
- Top-1 olasılığı
- en az 0,60
- İkinciye karşı fark
- en az 0,05
- Sonsal entropi
- en fazla 3,58 nat
- Softmax sıcaklığı
- 1,0
Bu eşiklerin altında uygulama, sıralanmış yerel adayları ve buluta doğrulatmak için açık bir seçenek sunar. Düşük güven, hiçbir zaman sessizce bir bulut tanımlama kredisi harcamaz.
Gecikme: ne ölçtüm, neyi iddia etmeyeceğim
Bu vaka çalışmasının ilk taslağının fazla ileri gittiği bölüm burasıydı; bu yüzden kendi kanıtımın sınırları konusunda net olmak gerekiyor.
BioCLIP dönemi, çekimden görünür sonuç sayfasına
Tek tek ölçülen aşamalar 11,1 saniyenin yaklaşık 6,2'sini açıklıyor. Kalanı orkestrasyon, görüntü hazırlığı, durum değişiklikleri ve arayüz işinde geçti. Bunlar kendi ölçümlerimden gelen tek turluk değerler, ortalaması alınmış bir kıyaslama değil.
Bir Galaxy Z Fold5'te FieldNet 1, Android GPU delegesi üzerinden üç turda 44, 50 ve 67 milisaniyede sınıflandırdı; ortalama 53,7 ms. Test kedisini %43 güvenle doğru şekilde Felis catus olarak tanımladı; uzun kuyruklu gelincik ve dağ aslanı çok geride kaldı — yanlış cevaplar, ama görsel olarak ilişkili memeliler içinde yanlış; istediğiniz hata biçimi bu.
1.600 ms'yi bir şeyle çarpıp buna hızlanma demeyeceğim. BioCLIP değeri CPU'da bir iPhone 13 mini'den, FieldNet değeri GPU'da bir Fold5'ten geldi: farklı silikon, farklı işletim sistemi, farklı delege. Bu kadar farklı ölçülmüş iki sayı dürüst bir orana bölünmez.
Bu nasıl ve kim tarafından yapıldı
Buradaki atfın iki yönde de yaltaklanmak yerine doğru olmasını istiyorum.
Ürün hedefini ben koydum ve mimari değişimi ben kabul ettim. Kıyaslama sızıntısını ortaya çıkaran adalet standardını ben belirledim ve sızıntılı karşılaştırmanın — zaten çalışmış olan karşılaştırma olmasına rağmen — yayınlanamayacağına ben karar verdim. Başarısız turu kurtarmak yerine baştan başlamayı ben seçtim. Kapalı küme takasını ben kabul ettim ve güvenin iddiaya kapı olması gerektiğini ben şart koştum. Bu vaka çalışmasındaki hangi sayıların yayınlanacak kadar güçlü olduğuna ben karar verdim.
Araç ise baştan sona yapay zekâydı. Kimi K3 ilk mimari özetini ve eğitim kılavuzunu çerçeveledi. Daha derin mimari karşılaştırma, BioCLIP, BioCLIP 2, MobileNetV4, EfficientNet, MobileCLIP ve DINOv2 üzerinde Claude Code aracılığıyla çok ajanlı bir araştırma turu olarak çalıştı; 22 iddia üç oylu çekişmeli denetimden sağ çıktı. Ardından Claude Opus 4.8 eğitim, kurtarma, ihracat ve kıyaslama hattını uyguladı.
Mevcut durum
FieldNet 1, RealDex'te Google Play üzerinde yayında; platform ve sürüme göre kapsamlanmış bir Firebase Remote Config bayrağıyla etkin, böylece yeni bir sürüm çıkarmadan kapatılabiliyor. iOS yapısı App Store yayınını bekliyor ve aynı INT8 yapıtını CPU'da kullanıyor. Kamera içi canlı sınıflandırma yolu kod tabanında var ama kapalı duruyor: gecikmesi doğrulanmadı ve doğrulanmamış bir gerçek zamanlı yolu kameraya sokmak, 54 milisaniyelik bir modeli tam da böyle tutuk hale getirir.
Bu işe başlayacak birine söyleyeceğim şey
Makul şekilde çalışabilecek en küçük modeli eğitin ve onu nasıl yayınlanacaksa öyle değerlendirin: nicelenmiş, dedektör kırpmaları üzerinde ve başlamadan önce ayırdığınız bir test kümesine karşı. Bu ilkenin etrafından dolaşmak için attığım her kısa yol, kazandırdığından fazla zamana mal oldu. Kıyaslama sızıntısı referansın tümüyle yeniden kurulmasına mal oldu. Yumuşak hedefli eğitim altı fazladan epoch ve ikinci bir ihracat turuna mal oldu. USB disk neredeyse üç güne mal oldu.
BioCLIP, RealDex'in bir telefonda ciddi biyolojik görü çalıştırabileceğini kanıtladı. FieldNet 1, ilk modelin nihai mimari olmak zorunda olmadığını kanıtladı.
Temel Dersler
Yeniden Üretilebilir Bir Kıyaslama Yine de Yanlış Soruyu Cevaplayabilir
Sızıntılı kıyaslamam otomatik, belirlenimci ve sayısal olarak kesindi. Aynı zamanda hileliydi ve bu iyi özelliklerin her biri onu daha az değil, daha inandırıcı yapıyordu. Titizlik, en sonda yaptığınız bir raporlama adımı değildir. Değerlendirme kümesini kuran kodun yanında, uygulamanın içine aittir; çünkü bir kıyaslamanın işi, size yanıldığınızı söyleyebilecek durumda olmaktır.
Bir Mimariye Sadece Yayınlandığı İçin Bağlanmayın
BioCLIP doğru ilk karardı ve yanlış kalıcı karardı. Ciddi bir biyolojik görü modelinin bir telefonda çevrim dışı çalışabileceğini kanıtladı; birinci sürümde önemli olan soru buydu. Onu değiştirmek, gurur duyduğum işleri — vektör yükleyicileri ve gömme hattını — çöpe atmak anlamına geldi. Batık maliyet gerçekti. Ürünün bundan sonra ne yapması gerektiği sorusuyla da alakasızdı.
Dağıtım Kısıtları Eğitim Döngüsüne Aittir
Niceleme çöküşü bir ihracat hatası değildi. Üç adım sonra yüzeye çıkan bir eğitim kararıydı; çünkü yoğun etiket yumuşatma ve Mixup, güveni kasten yumuşak olan bir model üretir — ve INT8'in yok ettiği şey tam olarak yumuşak güvendir. Bunu dönüştürücüde düzeltemedim. Geri dönüp modelin nasıl eğitildiğini değiştirmem gerekti. Bir modelin telefonda 8 bitte çalışması gerekiyorsa, o kısıt model öğrenirken de masada olmalıdır.
Özet
FieldNet 1, RealDex'i aynı anda iki yönde ilerletti. Yayınlanan INT8 modeli adil top-1 doğruluğunu 14,5 puan artırırken ilk açılıştaki yapay zekâ indirmesini yaklaşık %56 küçülttü. Ayrı gömme veritabanını kaldırdı, nicelemeyi 0,14 puan kayıpla atlattı ve eski transformatörün asla kullanamadığı Android GPU delegesine ulaştı. Ürünler genellikle doğruluğu boyutla takas eder. Bu ürün ikisini birlikte iyileştirdi; çünkü veri kümesi, eğitim tarifi, kıyaslama, ihracat ve mobil entegrasyon beş ayrı aşama değil tek bir sistem olarak ele alındı.
Önemsediğim sayı %61,3 değil, 39 MB değil, 54 ms de değil. Bileşim. Doğru ama fazla büyük bir model bir demodur. Hızlı ama güvenilmez bir model bir cambazlıktır. Ve hile yapmasına izin verilen bir kıyaslamada selefini geçen bir model ikisi de değildir — bu yüzden bu projenin en değerli saati, yayınlamadan önce kendi sonucumun yanlış olduğunu kanıtlamaya harcadığım saatti.