Heim >Technologie-Peripheriegeräte >KI >Tensorflow Lite gegen Pytorch Mobile
In der jüngsten Welt der Technologieentwicklung und des maschinellen Lernens ist es nicht mehr in der Mikro -Cloud, sondern in mobilen Geräten eingeschlossen. Wie wir wissen, sind TensorFlow Lite und Pytorch Mobile zwei der im Handel erhältlichen Tools zum Bereitstellen von Modellen direkt auf Telefonen und Tablets. Tensorflow Lite und Pytorch Mobile sind beide entwickelt, um auf Mobilgeräten zu arbeiten, aber sie stehen in ihren Vor- und Nachteilen unterschiedlich. Hier in diesem Artikel sollen wir wissen, was Tensorflow Lite ist, was Pytorch Mobile ist, ihre Anwendungen und Unterschiede zwischen beiden.
Dieser Artikel wurde als Teil des Data Science -Blogathons veröffentlicht.
Wir können KI auf den mobilen Geräten wie Smartphone, Tablet oder einem anderen Gerät mit maschinellem Lernen ausführen. Wir müssen uns nicht auf Dienste von Wolken verlassen. Dies sind eine schnelle Reaktion, die Sicherheit sensibler Informationen, und die Anwendung kann mit oder ohne Internetkonnektivität ausgeführt werden, die für verschiedene Anwendungen sehr wichtig sind. Bilderkennung in Echtzeit, maschineller Übersetzung und Augmented Reality.
TensorFlow Lite ist die Tensorflow -Version, die häufig auf Geräten mit eingeschränkten Funktionen verwendet wird. Es funktioniert und ist mit anderen Betriebssystemen wie dem Android und dem iPhone kompatibel. Es konzentriert sich hauptsächlich in die Bereitstellung von Latenz- und Hochleistungsausführung. Bei TensorFlow Lite gibt es einen Modelloptimierer, mit dem bestimmte Methoden beispielsweise die Quantisierung auf Modelle angewendet werden können. Dies macht Modelle schneller und kleiner für die mobile Bereitstellung, was in dieser Praxis unerlässlich ist, um die Effizienz zu verbessern.
Im Folgenden finden Sie einige wichtigste Merkmale von TensorFlow Lite:
Pytorch Mobile ist die mobile Erweiterung von Pytorch. Es ist allgemein bekannt für seine Flexibilität in der Forschung und Produktion. Pytorch Mobile erleichtert einfach, ein geschultes Modell aus einer Desktop -Umgebung zu nehmen und es ohne viel Änderung auf mobilen Geräten bereitzustellen. Es konzentriert sich mehr auf die Benutzerfreundlichkeit des Entwicklers, indem es dynamische Berechnungsdiagramme unterstützt und das Debuggen erleichtert.
Im Folgenden finden Sie einige wichtige Merkmale von Pytorch Mobile:
Wenn wir ihre Leistung diskutieren, sind beide Frameworks für mobile Geräte optimiert, TensorFlow Lite hat jedoch eine hohe Ausführungsgeschwindigkeit und Ressourceneffizienz.
Pytorch Mobile wird aufgrund seiner Flexibilität und einfachen Debugging im Allgemeinen von Entwicklern bevorzugt. Es liegt an dynamischen Berechnungsgraphen. Dies hilft uns, Modelle zur Laufzeit zu modifizieren, was sich hervorragend für Prototypen eignet. Andererseits erfordert TensorFlow Lite vor dem Einsatz in ein statisches Format umgewandelt, was Komplexität verleihen kann, aber zu optimierteren Modellen für Mobilgeräte führen kann.
Wir können sowohl Tensorflow Lite als auch Pytorch Mobile auf zwei wichtigen mobilen Plattformen, Android und iOS, verwenden.
Wenn es darum geht, welche Hardware unterstützt wird, ist Tflite viel flexibler. Aufgrund des Delegiertensystems unterstützt es nicht nur CPUs und GPUs, sondern auch digitale Signalprozessoren (DSPs) und andere Chips, die als höhere Künstler angesehen werden als die Basis -CPUs.
Während Pytorch Mobile auch CPUs und GPUs wie Metal für iOS und Vulkan für Android unterstützt, bietet es über dies hinaus weniger Optionen für die Beschleunigung der Hardware. Dies bedeutet, dass Tflite möglicherweise den Vorteil hat, wenn wir eine breitere Hardwarekompatibilität benötigen, insbesondere für Geräte mit spezialisierten Prozessoren.
Der Hauptunterschied zwischen Tensorflow Lite und Pytorch Mobile besteht darin, wie Modelle von der Trainingsphase auf mobile Geräte eingesetzt werden.
Wenn wir ein TensorFlow -Modell auf Mobilgeräten bereitstellen möchten, muss es mit dem TFLite -Konverter konvertiert werden. Dieser Prozess kann optimiert werden, z. B. Quantisierung, die das Modell für mobile Ziele schnell und effizient macht.
Für Pytorch Mobile können wir das Modell mit TorchScript speichern. Der Prozess ist sehr einfacher und einfach, bietet jedoch nicht das gleiche Niveau an erweiterten Optimierungsoptionen, die Tflite bereitstellt.
Entdecken Sie die realen Anwendungen von Tensorflow Lite und Pytorch Mobile und zeigen Sie, wie diese Rahmenbedingungen intelligente Lösungen in verschiedenen Branchen betreiben.
Tflite ist eine bessere Plattform für verschiedene Anwendungen, die schnelle Antworten erfordern, wie z. B. Echtzeit-Bildklassifizierung oder Objekterkennung. Wenn wir an Geräten mit speziellen Hardware wie GPUs oder neuronalen Verarbeitungseinheiten arbeiten. Die Hardware -Beschleunigungsfunktionen von Tflite helfen dem Modell schneller und effizienter.
Pytorch Mobile eignet sich hervorragend für Projekte, die sich noch weiterentwickeln, wie Forschung oder Prototyp -Apps. Seine Flexibilität erleichtert es einfach zu experimentieren und zu iterieren, was es den Entwicklern ermöglicht, schnelle Änderungen vorzunehmen. Pytorch Mobile ist ideal, wenn wir häufig neue Modelle mit minimalen Modifikationen experimentieren und bereitstellen müssen.
Wir werden ein vorgebildetes Modell (Mobilenetv2) verwenden und es in den Tensorflow Lite umwandeln.
Das erste, was wir tun, ist den Tensorflow importieren und ein vorgebildetes Mobilenetv2-Modell laden. Es ist bereit, für die Vorausbildung im ImageNet-Datensatz zu verwenden, wie in diesem Modell zu sehen ist. Das Modell model.export ('mobilenet_model') schreibt das Modell in einem Format des SavedModel von TensorFlow. Dies ist das Format, das erforderlich ist, um es in das TensorFlow Lite -Modell (TFLite) umzuwandeln, das mit mobilen Geräten verwendet wird.
# Schritt 1: Richten Sie die Umgebung ein und laden Sie ein vorgebildetes Mobilenetv2-Modell Tensorflow als TF importieren # Laden Sie ein vorgezogenes Mobilenetv2 -Modell auf model = tf.keras.applications.mobilenetv2 (Gewicht = 'ImagEnet', input_shape = (224, 224, 3)) # Speichern Sie das Modell als SavedModel für die Tflite -Konvertierung model.export ('mobilenet_model')
Das Modell wird aus dem gespeicherten Modell (MOBILENET_MODEL -Verzeichnis) unter Verwendung von TFLiteConverter geladen. Der Konverter wandelt das Modell in ein leichteres .tflite -Format um. Schließlich wird das TFLite -Modell als mobilenet_v2.tflite für die spätere Verwendung in mobilen oder Kantenanwendungen gespeichert.
# Schritt 2: Konvertieren Sie das Modell in den Tensorflow Lite Converter = tf.lite.tfliteConverter.from_saved_model ('mobilenet_model') tflite_model = converter.convert () # Speichern Sie das konvertierte Modell in einer Tflite -Datei mit open ('mobilenet_v2.tflite', 'wb') als f: F.Write (Tflite_Model)
Jetzt importieren wir die notwendigen Bibliotheken für numerische Operationen (Numpy) und Bildmanipulation (Pil.Image). Das TFLite -Modell wird unter Verwendung von tf.lite.interpreterand geladen. Der Speicher wird für Eingangs-/Ausgangstensoren zugeordnet. Wir holen Details zu den Eingangs-/Ausgabe -Tensoren wie den Formen und Datentypen ab, die nützlich sein, wenn wir das Eingabebild vorbereiten und die Ausgabe abrufen.
Numph als NP importieren vom PIL -Importbild # Laden Sie das TFLite -Modell undzuordnen Tensoren zu interpreter = tf.lite.interpreter (model_path = 'mobilenet_v2.tflite') Interpreter.Allcate_tensors () # Eingangs- und Ausgabe -Tensoren abrufen input_details = interpreter.get_input_details () output_details = interpreter.get_output_details ()
Wir laden das Bild (CAT.JPG), die Größe auf die erforderlichen (224, 224) Pixel und die Vorverarbeitung mit der Vorverarbeitungsmethode von Mobilenetv2. Das vorverarbeitete Bild wird in das TFLite -Modell eingespeist, indem der Eingangstensor unter Verwendung vonInterPreter.set_tensor () festgelegt wird, und wir führen Inferenz mit interpreter.invoke () aus. Nach der Inferenz rufen wir die Vorhersagen des Modells ab und dekodieren sie mithilfe von deCode_Predictions () zu Namen und Wahrscheinlichkeiten von Menschenlesbar. Schließlich drucken wir die Vorhersagen.
# Laden und Vorverarbeitung des Eingangsbildes Image = Image.open ('cat.jpg'). Größenänderung ((224, 224)) # Ersetzen Sie Ihren Bildpfad durch input_data = np.expand_dims (np.Array (Bild), Axis = 0) input_data = tf.keras.applications.mobilenet_v2.preprocess_input (input_data) # Legen Sie den Eingangstennsor ein und führen Sie das Modell aus Interpreter.set_tensor (input_details [0] ['Index'], input_data) interpreter.invoke () # Erhalten Sie den Ausgang und dekodieren Sie Vorhersagen output_data = interpreter.get_tensor (output_details [0] ['index']) Vorhersagen = tf.keras.applications.mobilenet_v2.decode_prredictions (output_data) Druck (Vorhersagen)
Verwenden Sie das CAT -Bild unten:
Ausgabe:
[('N02123045', Tabby ', 0,85), (' N02124075 ',' ägyptisch_cat ', 0,07), (' N02123159 ',' Tiger_cat ', 0,05)]
Dies bedeutet, dass das Modell zu 85% zuversichtlich ist, dass das Bild eine Tabby -Katze ist.
Jetzt werden wir Pytorch Mobile implementieren. Wir werden ein einfaches vorgebildetes Modell wie ResNet18 verwenden, es in Torchscript umwandeln und Inferenz ausführen
# Schritt 1: Richten Sie die Umgebung ein Taschenlampe importieren importieren # Laden Sie ein vorgezogenes ResNet18 -Modell Modell = models.resnet18 (vorbereitet = true) # Setzen Sie das Modell in den Bewertungsmodus model.eval ()
Hier definieren wir ein Beispiel_input, der ein zufälliger Tensor der Größe ist [1, 3, 224, 224]. Dies simuliert eine Stapel von 1 Bild mit 3 Farbkanälen (RGB) und 224 × 224 Pixel. Es wird verwendet, um die Vorgänge des Modells zu verfolgen. tramp.jit.trace () ist eine Methode, die das Pytorch -Modell in ein Torchscript -Modul umwandelt. Mit TorchScript können Sie das Modell außerhalb von Python serialisieren und ausführen, z. B. in C oder mobilen Geräten. Das konvertierte Torchscript -Modell wird als "resnet18_Scripted.pt" gespeichert, sodass es später geladen und verwendet werden kann.
# Schritt 2: Konvertieren Sie in Torchscript Beispiel_input = Torch.randn (1, 3, 224, 224) # Beispieleingabe für die Verfolgung Traced_script_module = fackel.jit.trace (Modell, Beispiel_input) # Speichern Sie das Torchscript -Modell Traced_script_module.save ("resnet18_Scriptted.pt")
Wir verwenden t Torch.jit.load (), um das zuvor gespeicherte Torchscript -Modell aus der Datei "ResNet18_Scriptted.pt" zu laden. Wir erstellen eine neue zufällige Tensor input_data und simulieren erneut eine Bildeingabe mit Größe [1, 3, 224, 224]. Das Modell wird dann auf dieser Eingabe mit Loaded_Model (input_data) ausgeführt. Dies gibt die Ausgabe zurück, die die Rohwerte (Protokolls) für jede Klasse enthält. Um die vorhergesagte Klasse zu erhalten, verwenden wir Torch.max (Ausgabe, 1), der den Index der Klasse mit der höchsten Punktzahl ergibt. Wir drucken die vorhergesagte Klasse mit vorhergesagtem ().
# Schritt 3: Laden und führen Sie das Skriptmodell aus und führen Sie sie aus ladeed_model = t Torch.jit.load ("resnet18_Scriptted.pt")) # Eingabedaten simulieren (ein zufälliger Bild -Tensor) input_data = fackel.randn (1, 3, 224, 224) # Führen Sie das Modell aus und erhalten Sie Vorhersagen output = laded_model (input_data) _, vorhergesagt = fackel.max (Ausgabe, 1) print (f'Predicted Class: {vorhergesagt.Item ()} ')
Ausgabe:
Vorhergesagte Klasse: 107
Somit sagt das Modell voraus, dass die Eingabedaten zum Class Index 107 gehört.
TensorFlow Lite konzentriert sich mehr auf mobile Geräte, während Pytorch Mobile eine allgemeinere CPU/GPU-gestrichene Lösung bietet. Im Vergleich zu Tensorflow Lite bietet Pytorch Mobile eine größere Portabilität und ist auch leichter als Tensorflow lite und eng ingleiert in Google. In Kombination können sie Entwicklern in Echtzeit künstliche Intelligenzanwendungen mit hohen Funktionen auf den Handheld-Geräten der Entwickler implementieren. Diese Frameworks befähigen die Benutzer mit der Fähigkeit, ausgefeilte Modelle auf lokalen Maschinen auszuführen, und schreiben auf diese Weise die Regeln für die Art und Weise, wie mobile Anwendungen mit der Welt in Kontakt treten, über Fingerspitzen um.
A. TensorFlow Lite wird verwendet, wo wir eine hohe Leistung auf mobilen Geräten benötigen, während Pytorch Mobile verwendet wird, wo wir Flexibilität und einfache Integration in das vorhandene Ökosystem von Pytorch benötigen.
Q2. Können Tensorflow Lite und Pytorch Mobile sowohl an Android als auch an iOS arbeiten?A. Ja, sowohl Tensorflow Lite als auch Pytorch Mobile arbeiten an Android und iOS.
Q3. Schreiben Sie eine Verwendung von Pytorch Mobile.A. Pytorch Mobile ist nützlich für Anwendungen, die Aufgaben wie Bild-, Gesichts- und Videoklassifizierung, Echtzeit-Objekterkennung, Reversion von Sprache zu Text usw. ausführen.
Q4. Schreiben Sie eine Verwendung von TensorFlow Lite Mobile.A. TensorFlow Lite Mobile ist nützlich für Anwendungen wie Robotik, IoT -Geräte, Augmented Reality (AR), Virtual Reality (VR), natürliche Sprachverarbeitung (NLP) usw.
Die in diesem Artikel gezeigten Medien sind nicht im Besitz von Analytics Vidhya und werden nach Ermessen des Autors verwendet.
Das obige ist der detaillierte Inhalt vonTensorflow Lite gegen Pytorch Mobile. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!