Ich habe ein Skript zur Sequenzklassifizierung mit TensorFlow in Python geschrieben. Ich möchte diesen Code auf Android portieren. Ich habe das Beispiel auf der TensorFlow-Github-Seite in Bezug auf Android gesehen, aber das ist für Bilder.
Gibt es eine Möglichkeit, meinen TensorFlow Python-Code direkt auf Android zu portieren?
2 Antworten
Der typische Weg, dies zu tun, besteht darin, Ihr Modell mit Python zu erstellen (und zu trainieren) und das GraphDef
-Proto mit tf.train.write_graph()
und schreiben Sie dann eine App mit der JNI, um die C ++ TensorFlow-API aufzurufen (siehe ein vollständiges Beispiel hier).
Wenn Sie Ihr Diagramm in Python erstellen, sollten Sie die Namen der Tensoren notieren, die (i) die zu klassifizierenden Eingabedaten und (ii) die vorhergesagten Ausgabewerte darstellen. Dann können Sie einen Schritt ausführen, indem Sie einen Wert für (i) eingeben und den Wert für (ii) abrufen.
Ein letztes Problem ist die Darstellung der Modellparameter in Ihrem exportierten Diagramm. Es gibt verschiedene Möglichkeiten, dies zu tun, einschließlich des Versands eines TensorFlow-Prüfpunkts (geschrieben von einem tf.train.Saver
) als Teil Ihrer App und Ausführen der Wiederherstellungsoperationen, um sie neu zu laden. Eine Methode, die im veröffentlichten InceptionV3-Modell verwendet wurde, ist Um das Diagramm so umzuschreiben, dass die Modellparameter durch "Const"
Knoten ersetzt werden und das Modelldiagramm in sich geschlossen wird.
Es gibt QPython oder Kivy .
QPython - Android Apps auf GooglePlay. Es ist eine Skript-Engine, die Python auf Android-Geräten ausführt. Damit kann Ihr Android-Gerät Python-Skripte und -Projekte ausführen. Es enthält den Python-Interpreter und einige andere Dinge wie pip
, aber es ist kein Compiler verfügbar, sodass nur reine Python-Pakete funktionieren.
Python für Android - Ermöglicht das Kompilieren einer Python-Anwendung in eine Android-APK zusammen mit zusätzlichen Paketen Pure-Python und diejenigen, die kompiliert werden müssen.
Verwandte Fragen
Neue Fragen
deep-learning
Deep Learning ist ein Bereich des maschinellen Lernens, dessen Ziel es ist, komplexe Funktionen mithilfe spezieller neuronaler Netzwerkarchitekturen zu lernen, die "tief" sind (aus vielen Schichten bestehen). Dieses Tag sollte für Fragen zur Implementierung von Deep-Learning-Architekturen verwendet werden. Allgemeine Fragen zum maschinellen Lernen sollten mit "Maschinelles Lernen" gekennzeichnet sein. Das Einfügen eines Tags für die relevante Softwarebibliothek (z. B. "Keras", "Tensorflow", "Pytorch", "Fast.ai" usw.) ist hilfreich.