2016-08-10 4 views
1

Ich versuche, zwei Tensoren zu multiplizieren zusammen, dass beide die gleiche Form haben:tensorflow zu multiplizieren zwei Tensoren

weights = tf.Variable(tf.random_normal([200], stddev=0.35), 
         name="weights") 
weights2 = tf.Variable(tf.random_normal([200], stddev=0.35), 
         name="weights2") 


greg = tf.matmul(weights,weights2) 


sess=tf.Session() 
sess.run(tf.initialize_all_variables()) 
sess.close() 

dieser Versuch in jupyter Notebook, bekomme ich diesen Fehler:

„Shapes (200,) und (?,?) müssen den gleichen Rang haben "

Was fehlt mir?

+3

Aus der Dokumentation: "Die [' Matmul'] Eingaben müssen zweidimensionale Matrizen sein, mit passenden inneren Dimensionen, möglicherweise nach der Transposition. " Deines ist nicht. https://www.tensorflow.org/versions/r0.10/api_docs/python/math_ops.html#matmul – NPE

+0

Gotchya, danke – rikkitikkitumbo

Antwort

1

Als NPE in their comment erwähnt, die tf.matmul() op erwartet, dass beide seiner Eingänge zweidimensionalen Tensoren sein, aber Ihre Argumente weights und weights2 sind eindimensional Tensoren.

Wenn Sie das innere Produkt dieser beiden Tensoren berechnen möchten, müssen Sie sie neu zu gestalten 200-by-1 und 1-by-200-Matrizen sein, (zB) tf.reshape() wie folgt:

greg = tf.matmul(tf.reshape(weights, [1, 200]), tf.reshape(weights2, [200, 1])) 
+0

danke, ich habe versucht, expand_dims, aber ohne Glück – rikkitikkitumbo

Verwandte Themen