Tensorflow - Matrix der Eingabematrix mit Chargendaten

Ich habe einige Daten dargestellt durchinput_x. Es ist ein Tensor unbekannter Größe (sollte chargenweise eingegeben werden) und jedes Element hat die Größen. input_x erfährttf.nn.embedding_lookup, damitembed hat jetzt Dimensionen[?, n, m] wom ist die Einbettungsgröße und? bezieht sich auf die unbekannte Losgröße.

Dies ist hier beschrieben:

input_x = tf.placeholder(tf.int32, [None, n], name="input_x") 
embed = tf.nn.embedding_lookup(W, input_x)

Ich versuche jetzt, jedes Sample in meinen Eingabedaten (die jetzt durch Einbetten der Dimension erweitert werden) mit einer Matrixvariablen zu multiplizieren.U, und ich kann anscheinend nicht verstehen, wie das geht.

Ich habe es zuerst mit @ versuctf.matmul aber es gibt einen Fehler aufgrund von Abweichungen in den Formen. Ich habe dann folgendes versucht, indem ich die Dimension von @ erweitert haU und bewerbenbatch_matmul (Ich habe auch die Funktion von @ ausprobiertf.nn.math_ops., das Ergebnis war das gleiche):

U = tf.Variable( ... )    
U1 = tf.expand_dims(U,0)
h=tf.batch_matmul(embed, U1)

Dies übergibt die erste Kompilierung, aber wenn die tatsächlichen Daten angewendet werden, wird der folgende Fehler angezeigt:

In[0].dim(0) and In[1].dim(0) must be the same: [64,58,128] vs [1,128,128]

Ich weiß auch, warum das passiert - ich habe die Dimension von @ nachgebildU und es ist jetzt1, aber die Minibatch-Größe,64, passt nicht.

Wie kann ich diese Matrixmultiplikation auf meinem Tensor-Matrix-Eingang korrekt durchführen (für unbekannte Chargengröße)?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage