2015-11-16 5 views
7

So in der Faltungs neuronalen Netzwerk cifar10 Beispiel in Tensorflow, in der inference() Methode von cifar10.py sehe ich mehrere Instanzen von dies:Hat die Ausgabe von tf.nn.bias_add (Wert, Bias) jemals eine andere Form als die Form des Wertes

bias = tf.reshape(tf.nn.bias_add(conv, biases),conv.get_shape().as_list()) 

Es scheint, wie die reshape ist dafür, dass die Ausgabe von bias_add(value, bias) die Form Wert hat

Meine Frage ist, ist die tf.reshape() notwendig? Gibt es eine Situation, in der keinen Tensor mit der gleichen Form als Wert zurückgibt?

Antwort

11

Die shape of the result von tf.nn.bias_add(value, bias) ist immer die gleiche wie die Form des Werts, so dass diese Aufrufe an tf.reshape() sind unnötig.

Gelegentlich ruft tf.reshape() verwendet werden explizite Informationen über die Form hinzufügen, aber die recommended way to do this, per the FAQ, ist die Tensor.set_shape() Methode zu verwenden, Forminformationen hinzuzufügen, ohne einen redundanten Betrieb zu dem Graphen hinzugefügt.