2016-11-13 3 views
0

Was ist der Unterschied in der Dimension oder Rangfolge zwischen den ersten beiden Ergebnissen? Warum kann ich diese beiden (Matrizen/Vektoren) hinzufügen? Das hört sich vielleicht nach einer naiven Frage an, aber ich versuche genau zu verstehen, wie die Addition zwischen Tensoren/Matrizen funktioniert. Vielen Dank. (Ich wollte auch wissen, warum ich die letzten beiden Ergebnisse hinzufügen Sind sie nicht zwei unterschiedlich große Matrizen.?)Was ist der Unterschied zwischen diesen beiden Tensoren und warum?

import tensorflow as tf 
import numpy as np 
W = tf.Variable(tf.zeros([784, 10])) 
x = tf.Variable(tf.zeros([2,784])) 
z = tf.matmul(x,W) 

Y = tf.Variable([4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0]) 

x = tf.Variable(tf.zeros([2,10])) 

model = tf.initialize_all_variables() 

with tf.Session() as session: 
    session.run(model) 
    print(session.run(z)) 
    print(session.run(Y)) 
    print(session.run(x)) 

Ergebnis:

[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]] 

[ 4. 5. 6. 7. 8. 9. 10. 11. 12. 14.] 

[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] 
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]] 

Antwort

0

ich keinen Zusatz sehen Sie, nur Multiplikation.

Alles, was Sie mit der Y-Variable tun, ist das Drucken des Tensors selbst, der die von Ihnen angegebenen Gleitkommawerte enthält.

Mit z multiplizieren Sie diese beiden Tensoren miteinander. Die allgemeine Formel für die Dimensionen des Ergebnisses der Multiplikation von Matrizen ist M × N * OxP = M × P (M und O sind Zeilen, N und P sind Spalten). Für x hast du also einen 2x784 Tensor multipliziert mit einem 784x10 Tensor. Dies (durch die allgemeine Dimensionsformel) gibt Ihnen einen Tensor mit den Dimensionen 2x10.

Wenn Sie meinen, dass Sie nachträglich mit Y und z tun können, ist es, weil Bibliotheken wie Tensorflow in der Regel Übertragung von einem Tensor zum anderen anwenden, solange einige Dimension übereinstimmt. Also, wenn Sie Y + z hast du

[[ 4. 5. 6. 7. 8. 9. 10. 11. 12. 14.] 
[ 4. 5. 6. 7. 8. 9. 10. 11. 12. 14.]] 

wegen der Ausstrahlung ist auf die Anzahl der Zeilen in z angelegt bekommen würde.

EDIT: Ich dachte nur, dass Sie Unterschied in Bezug auf die Arithmetik x gefragt) wegen Rundfunk, würde z - Y

sein
[[ -4. -5. -6. -7. -8. -9. -10. -11. -12. -14.] 
[ -4. -5. -6. -7. -8. -9. -10. -11. -12. -14.]] 
+0

Danke für mich, über Rundfunk von einem Tensor zum anderen wissen zu lassen. Das habe ich versucht zu verstehen. Ich habe die Frage ein wenig präzisiert, was ich mit dem Unterschied zwischen den ersten beiden Ergebnissen meinte. –

Verwandte Themen