2017-01-02 3 views
1

Ich verwende TensorFlow für Maschine auf Ogg und MIDI-Daten zu lernen, aber eine Menge Vorverarbeitung wird in NumPy (mit feed_dict: s) getan, und ich möchte so viel wie möglich in die Berechnungsgraphen zur Migration in um die Produktionsbereitstellung zu vereinfachen (Google Cloud ML oder möglicherweise selbst gehostete TensorFlow-Portierung). Wie würde ich darüber gehen? Gibt es Möglichkeiten, NumPy-Operationen automatisch in TensorFlow-Operationen zu konvertieren?Wie NumPy Vorverarbeitung in eine TensorFlow Graph migrieren?

+2

vielleicht 'tf.py_func' ist nützlich für Sie –

+3

Der Weg, es zu tun ist, über die [API] (https://www.tensorflow.org/api_docs/python/) und finden Sie eine passende TensorFlow-Variante für jeder numpy Anruf. Es gibt keine automatische Vorgehensweise, aber manchmal stimmen die APIs genau überein (z. B. Broadcasting, arithmetische Operationen). –

+0

_Die Operation tf.py_func() weist die folgenden bekannten Einschränkungen auf: Der Rumpf der Funktion wird in einem GraphDef nicht serialisiert . Daher sollten Sie diese Funktion nicht verwenden, wenn Sie Ihr Modell serialisieren und in einer anderen Umgebung wiederherstellen müssen._ [(Referenz)] (https://www.tensorflow.org/api_docs/python/script_ops/script_language_operators_#py_func) –

Antwort

0

Die meisten der Numpy Funktionen haben ihre TensorFlow Äquivalent in array_ops dokumentiert. Für die weitere mathematische Operationen, haben einen Blick auf math_ops.

Wenn Sie spezifischere Abfragen haben oder Numpy-Code nicht in TensorFlow konvertieren können, sollten Sie immer versuchen, StackOverflow Q/A zu durchsuchen oder eine Frage hier zu stellen. (Schauen Sie sich this für ein gutes Beispiel für eine solche Frage an).


Unrelated - Wenn Sie Schwierigkeiten einige Matrizenmanipulation Durchführung konfrontiert, versuchen Sie auf dem bestehenden Numpy Q/A auf Stackoverflow zu suchen. Sie können mit den obigen APIs einfach auf TensorFlow angewendet werden.

+0

manuell Code von einer API zum anderen Portierung scheint wie eine ziemlich schlecht (und offensichtlich) Lösung. Sicherlich wird es irgendwann ein Werkzeug geben, um von NumPy zu TensorFlow zu transponieren? Sonst würde ich vielleicht selbst einen solchen Compiler erstellen. –

+0

@ CarlThomé, viel hängt davon ab, was Sie wollen als 'Tensors' verlassen und was Sie wollen als' Variables' zwischenzuspeichern. Tensorflow-Funktionen sind nicht wirklich äquivalent zu Numpy, aber sie werden in bestimmten Fällen auftreten. Wie auch immer, du kannst gerne deine eigene Antwort hier schreiben – martianwars