2017-11-25 6 views
2

Im Gegensatz zu den meisten Programmiersprachen betrachtet TensorFlow die Form eines Arrays nicht als Teil des Typs. Der Nachteil davon ist, dass, wenn Sie einen Fehler machen und versehentlich Daten der falschen Form bereitstellen, kann es leise eine falsche Antwort z. Slightly different shape converges to wrong number - why?, was das Debugging erschwert.TensorFlow Shape Checker

Gibt es einen Form Checker für TF? Das heißt, eine Funktion oder ein Programm, die einen Graphen analysieren kann (mit Beispiel feed_dict falls erforderlich) und den Alarm auslösen, wenn eine Formabweichung vorliegt?

Antwort

3

Tensorflow bietet einen Form Checker-Mechanismus, der technisch das Form-Argument ist, das Sie beim Deklarieren von Tensorflow-Platzhaltern angeben sollten. Standardmäßig verwendet Tensorflow [None, None] für die Form. Wenn Sie jedoch zum Beispiel die Form beim Deklarieren Ihrer Platzhalter angeben, wird der Formfehler immer dann erhöht, wenn der Benutzer Daten mit falscher/widersprüchlicher Form eingibt. Auch zum Beispiel können sagen, dass ich einen Platzhalter namens X erklärt und hat seine Form Argument angeben:

X=tf.placeholder(dtype=tf.float32, shape=[None,256]) 

Nun, dies bedeutet, dass die Anzahl der Zeilen von X variieren kann, aber Anzahl der Features wird immer 256 sein Und jetzt Wenn ich versehentlich Daten der Form füttere, sagen wir 1000 Reihen und 20 Eigenschaften, wird Formfehler ausgelöst.

Überprüfen Sie auch diesen Link: https://www.tensorflow.org/api_docs/python/tf/placeholder