Der typische Weg, dies zu tun ist (und Zug) Ihr Modell, speichern Sie die GraphDef
Proto in eine Datei mit tf.train.write_graph()
, und dann schreiben Sie eine App mit dem JNI Python bauen die C++ TensorFlow API aufrufen (siehe eine komplette Beispiel here).
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, wie Sie die Modellparameter in Ihrem exportierten Diagramm darstellen. Dazu gibt es mehrere Möglichkeiten, z. B. das Versenden eines TensorFlow-Checkpoints (geschrieben von tf.train.Saver
) als Teil Ihrer App und das Ausführen der Wiederherstellungs-Ops zum erneuten Laden. Eine Methode, die in der released InceptionV3 model verwendet wurde, besteht darin, den Graph neu zu schreiben, so dass die Modellparameter durch "Const"
Knoten ersetzt werden, und der Modellgraph wird eigenständig.
Was meinen Sie mit "direkt"? Natürlich können Sie es in C++ erstellen eine Bibliothek erstellen und diese Bibliothek von einem Android-Programm laden. – fabrizioM
Bedeutet jede Alternative zum Neuschreiben des gesamten Codes –
Können Sie bitte den Code und oder teilen der Link auf GitHub, auf den Sie sich beziehen? – 0x90