Ich versuche Tensorflow zu verwenden, um ein rekurrentes neuronales Netzwerk zu erstellen. Mein Code ist etwas wie folgt:Tensorflow RNN Eingangsgröße
import tensorflow as tf
rnn_cell = tf.nn.rnn_cell.GRUCell(3)
inputs = [tf.constant([[0, 1]], dtype=tf.float32), tf.constant([[2, 3]], dtype=tf.float32)]
outputs, end = tf.nn.rnn(rnn_cell, inputs, dtype=tf.float32)
Jetzt läuft alles gut. Ich bin jedoch ziemlich verwirrt darüber, was eigentlich vor sich geht. Die Ausgabedimensionen sind immer die Stapelgröße x die Größe des versteckten Zustands der Rnn-Zelle - wie können sie völlig unabhängig von der Eingabegröße sein?
Wenn mein Verständnis korrekt ist, werden die Eingaben bei jedem Schritt mit dem versteckten Zustand des RMN verknüpft und dann mit einer Gewichtsmatrix (neben anderen Operationen) multipliziert. Dies bedeutet, dass die Dimensionen der Gewichtungsmatrix von der Eingabegröße abhängig sein müssen, was unmöglich ist, weil die rnn_cell erzeugt wird, bevor die Eingaben überhaupt deklariert werden!