Uçta Dağıtım için MobileNet ve EfficientNet
Hafif mimariler, TFLite dönüşümü, model boyutu ile doğruluk arasındaki ödünleşimler.
Uçta Dağıtım için MobileNet ve EfficientNet, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.
Uç Modeller Neden Farklıdır
Telefonlarda ve gömülü cihazlarda küçük boyut, düşük gecikme ve düşük güç tüketimi elde etmek için bir miktar doğruluktan ödün verirsiniz. MobileNet ve EfficientNet tam olarak bu amaçla tasarlanmıştır; ağır yoğun evrişimler yerine verimli yapı taşları kullanırlar.
MobileNet Derinlik Bazlı Evrişimleri
MobileNet, standart evrişimleri derinlikçe ayrılabilir evrişimlerle değiştirir: kanal başına uygulanan uzamsal bir filtreyi, 1x1 noktasal bir karıştırma işlemi izler. Bu yöntem, doğrulukta çok az kayıpla işlem ve parametre sayısını yaklaşık 8-9 kat azaltır.
MobileNetV3Small
MobileNetV3Small mobil cihazlar için ayarlanmıştır: yaklaşık 2.5MB ağırlık boyutuna sahip olduğundan depolama alanı ve RAM kısıtlı olduğunda idealdir.
from tensorflow.keras.applications import MobileNetV3Small
base = MobileNetV3Small(
weights="imagenet",
include_top=False,
input_shape=(224, 224, 3)
)EfficientNetB0
EfficientNetB0, derinlik, genişlik ve çözünürlük arasında denge kurmak için bileşik ölçekleme kullanır. Boyutuna göre yüksek doğruluk sunar ve küçük mobil ağlarla ağır sunucu modelleri arasında harika bir orta noktadır.
from tensorflow.keras.applications import EfficientNetB0
base = EfficientNetB0(
weights="imagenet",
include_top=False,
input_shape=(224, 224, 3)
)Aralarında Seçim Yapma
- MobileNetV3Small (~2.5MB): en küçük, en hızlı ve doğruluğu en düşük modeldir. Gerçek zamanlı mobil kullanım için en iyisidir.
- EfficientNetB0: doğruluk ve boyut arasında dengelidir. Biraz daha fazla işlem gücü ayırabildiğiniz durumlar için en iyisidir.
Seçiminizi cihazınızın gecikme bütçesine ve hedef doğruluk değerine göre yapın.
Aktarım Baş Katmanını Oluşturma
Aktarım öğrenimi kalıbı aynıdır: tabanı dondurun, havuzlama yapın ve bir Dense baş katmanı ekleyin.
from tensorflow.keras import layers, Model
base.trainable = False
x = layers.GlobalAveragePooling2D()(base.output)
x = layers.Dropout(0.2)(x)
out = layers.Dense(num_classes, activation="softmax")(x)
model = Model(base.input, out)TFLite Nedir
TensorFlow Lite, cihaz üzerinde çıkarım yapmak için kullanılan bir çalışma ortamıdır. Eğitilmiş bir Keras modelini, mobil işlemcilerde, grafik işlemcilerde ve NPU'larda verimli biçimde çalışan kompakt bir .tflite düz arabellek biçimine dönüştürürsünüz.
TFLite Dönüştürme
Kaydedilen modeli dönüştürmek için TFLiteConverter kullanın.
import tensorflow as tf
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()
with open("model.tflite", "wb") as f:
f.write(tflite_model)Niceleme Boyutu Daha da Küçültür
Eğitim sonrası niceleme, ağırlıkları 32 bit kayan nokta yerine 8 bitlik tamsayı biçiminde saklar; boyutu yaklaşık 4 kat küçültür ve doğrulukta çok az kayıpla mobil donanımda çıkarımı hızlandırır.
converter = tf.lite.TFLiteConverter.from_keras_model(model)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_quant = converter.convert()Gecikme Karşılaştırmaları
Tipik mobil donanımlarda MobileNetV3Small, görüntü başına genellikle tek haneli ile düşük çift haneli milisaniyeler içinde çalışır ve rahatça gerçek zamanlı performans sunar. EfficientNetB0 daha ağır ve yavaştır, ancak daha yüksek doğruluk sağlar.
Her zaman gerçek hedef cihazda karşılaştırma yapın; öykünücü süreleri güvenilir değildir. TFLite Benchmark Tool'u kullanın veya yorumlayıcının invoke() süresini ölçün.
TFLite Çıkarımını Çalıştırma
Modeli Interpreter ile yükleyin, giriş tensörünü ayarlayın, invoke işlemini çağırın ve çıktıyı okuyun.
interpreter = tf.lite.Interpreter(model_path="model.tflite")
interpreter.allocate_tensors()
inp = interpreter.get_input_details()[0]
out = interpreter.get_output_details()[0]
interpreter.set_tensor(inp["index"], image)
interpreter.invoke()
print(interpreter.get_tensor(out["index"]))Hızlı Kontrol
Uç cihazlara dağıtım bilginizi sınayın.
Özet
Uç cihaz kullanımı için MobileNetV3Small (~2.5MB, en hızlı) ve EfficientNetB0 (dengeli) modellerini karşılaştırdınız, bu modeller üzerinde aktarım baş katmanları oluşturdunuz, modelleri TFLite'a dönüştürdünüz, int8 nicelemesi uyguladınız ve gerçek donanımda gecikmeyi ölçtünüz. Böylece Aktarım Öğrenimi kursu tamamlanmış oldu. Sıradaki kurs: Zaman Serisi Analizi.
Sıkça Sorulan Sorular
“Uçta Dağıtım için MobileNet ve EfficientNet” dersi ücretsiz mi?
Evet — “Uçta Dağıtım için MobileNet ve EfficientNet” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.
“Uçta Dağıtım için MobileNet ve EfficientNet” dersinde ne öğreneceğim?
Hafif mimariler, TFLite dönüşümü, model boyutu ile doğruluk arasındaki ödünleşimler. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Uçta Dağıtım için MobileNet ve EfficientNet” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Aktarım Öğrenmesi Kavramları ve Stratejileri
- VGG16 ve ResNet50'yi Temel Modeller Olarak Kullanma
- İnce Ayar: Dondurmayı Kaldırma ve Yeniden Eğitme
- Uçta Dağıtım için MobileNet ve EfficientNet