2017-09-19 1 views
0

Ich arbeite an neuronalen Netzen und habe oft Probleme mit Formen gesehen ... Tensorflow liefert uns ein Schlüsselwort None, so dass wir uns keine Gedanken über die Größe des Tensors machen müssen. ... Gibt es einen Nachteil der Verwendung von None anstelle von bekannten numerischen Wert für Form.Tensorform beim Definieren eines Tensors

Methode 1

input_placeholder = tf.placeholder(tf.float32,[None,None]) 

Methode 2

input_placeholder = tf.placeholder(tf.float32,[64,100]) 

Wird es einen Unterschied machen, während der Code ausgeführt wird?

Antwort

0

Die Tensorflow tf.placeholder() Tensoren benötigen keine feste Form, um an sie weitergeleitet zu werden. Dies ermöglicht es Ihnen, verschiedene Formen in späteren tf.Session.run() Anruf übergeben. Ihr Code wird also gut funktionieren. Es hat keinen Nachteil, denn wenn wir einen Platzhalter erstellen, reserviert Tensorflow keinen Speicher. Wenn Sie den Platzhalter füttern, wird TensorFlow in dem Aufruf an tf.Session.run() entsprechend Speicher für die Eingabetensoren reservieren.

Wenn Sie diese input_placeholder in einigem Betrieb in Ihrem Code verwenden weiter, so dass sie mit None dh einer ungezwungenen Form definieren, kann Tensorflow führen, dass einige Kontrollen durchzuführen, um die Form der Tensoren zusammen, während diese Operationen dynamisch während der Session.run() Durchführung Anruf. Das liegt daran, dass Tensorflow beim Erstellen der Grafik nicht die genaue Form Ihrer Eingabe kennt.

Verwandte Themen