MobileNet und EfficientNet für Edge-Deployment
Leichtgewichtige Architekturen, TFLite-Konvertierung, Abwägung zwischen Modellgröße und Genauigkeit.
MobileNet und EfficientNet für Edge-Deployment ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Warum sich Edge-Modelle unterscheiden
Auf Smartphones und eingebetteten Geräten tauschen Sie einen Teil der Genauigkeit gegen eine geringe Größe, niedrige Latenz und einen niedrigen Energieverbrauch ein. MobileNet und EfficientNet wurden genau dafür entwickelt und verwenden effiziente Bausteine anstelle schwerer dichter Faltungen.
Depthwise-Convolutions in MobileNet
MobileNet ersetzt Standardfaltungen durch depthwise separable convolutions: einen räumlichen Filter pro Kanal, gefolgt von einer punktweisen Mischung mit 1x1. Dadurch werden Rechenaufwand und Parameteranzahl bei nur geringem Genauigkeitsverlust ungefähr um den Faktor 8–9 reduziert.
MobileNetV3Small
MobileNetV3Small ist für mobile Geräte optimiert: Mit etwa 2.5MB an Gewichten eignet es sich ideal, wenn Speicherplatz und RAM knapp sind.
from tensorflow.keras.applications import MobileNetV3Small
base = MobileNetV3Small(
weights="imagenet",
include_top=False,
input_shape=(224, 224, 3)
)EfficientNetB0
EfficientNetB0 verwendet eine kombinierte Skalierung, um Tiefe, Breite und Auflösung auszubalancieren. Für seine Größe erreicht es eine hohe Genauigkeit und ist ein hervorragender Mittelweg zwischen winzigen mobilen Netzen und schweren Servermodellen.
from tensorflow.keras.applications import EfficientNetB0
base = EfficientNetB0(
weights="imagenet",
include_top=False,
input_shape=(224, 224, 3)
)Zwischen den Modellen wählen
- MobileNetV3Small (~2.5MB): am kleinsten, am schnellsten, mit der geringsten Genauigkeit. Am besten für mobile Anwendungen in Echtzeit geeignet.
- EfficientNetB0: ausgewogenes Verhältnis zwischen Genauigkeit und Größe. Am besten geeignet, wenn Sie etwas mehr Rechenleistung einsetzen können.
Treffen Sie Ihre Wahl anhand des Latenzbudgets Ihres Geräts und des angestrebten Genauigkeitswerts.
Den Transfer-Learning-Head erstellen
Das Muster für Transfer Learning ist identisch: Basis einfrieren, Pooling anwenden und einen Dense-Head hinzufügen.
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)Was ist TFLite?
TensorFlow Lite ist eine Laufzeitumgebung für die Inferenz auf dem Gerät. Sie konvertieren ein trainiertes Keras-Modell in einen kompakten .tflite-FlatBuffer, der effizient auf mobilen CPUs, GPUs und NPUs ausgeführt wird.
TFLite-Konvertierung
Verwenden Sie TFLiteConverter, um das gespeicherte Modell zu konvertieren.
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)Quantisierung reduziert die Größe weiter
Bei der Quantisierung nach dem Training werden Gewichte statt als float32 als int8 gespeichert. Dadurch wird die Größe ungefähr um den Faktor 4 reduziert und die Inferenz auf mobiler Hardware beschleunigt – bei nur geringem Genauigkeitsverlust.
converter = tf.lite.TFLiteConverter.from_keras_model(model)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_quant = converter.convert()Latenz-Benchmarks
Auf typischer mobiler Hardware läuft MobileNetV3Small pro Bild häufig im einstelligen bis niedrigen zweistelligen Millisekundenbereich und damit problemlos in Echtzeit. EfficientNetB0 ist größer und langsamer, aber genauer.
Führen Sie Benchmarks immer auf dem tatsächlichen Zielgerät durch; Messwerte aus Emulatoren sind unzuverlässig. Verwenden Sie das TFLite Benchmark Tool oder messen Sie die Dauer von invoke() des Interpreters.
TFLite-Inferenz ausführen
Laden Sie das Modell mit dem Interpreter, setzen Sie den Eingabetensor, rufen Sie das Modell auf und lesen Sie die Ausgabe aus.
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"]))Kurzer Check
Testen Sie Ihr Wissen über die Bereitstellung am Edge.
Zusammenfassung
Sie haben MobileNetV3Small (~2.5MB, am schnellsten) und EfficientNetB0 (ausgewogen) für den Einsatz am Edge verglichen, darauf Transfer-Learning-Heads erstellt, die Modelle in TFLite konvertiert, eine int8-Quantisierung angewendet und die Latenz auf echter Hardware gemessen. Damit ist der Kurs zu Transfer Learning abgeschlossen. Der nächste Kurs ist: Zeitreihenanalyse.
Häufig gestellte Fragen
Ist die Lektion „MobileNet und EfficientNet für Edge-Deployment“ kostenlos?
Ja — der vollständige Text von „MobileNet und EfficientNet für Edge-Deployment“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „MobileNet und EfficientNet für Edge-Deployment“?
Leichtgewichtige Architekturen, TFLite-Konvertierung, Abwägung zwischen Modellgröße und Genauigkeit. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Learn AI with Python zu starten?
Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „MobileNet und EfficientNet für Edge-Deployment“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?
Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Konzepte und Strategien des Transfer Learnings
- VGG16 und ResNet50 als Basismodelle verwenden
- Fine-Tuning: Entsperren und erneutes Trainieren
- MobileNet und EfficientNet für Edge-Deployment