2016-08-01 31 views
0

Ich implementiert den Code für LSTM in Tensorflow und jeder meiner Charge hat unterschiedliche Länge. Um die Daten dem Graphen zuzuführen, benötige ich eine variable Liste von Eingängen.Variable Bereich der Schleife in Tensorflow

Ich möchte die folgende Schleife einen variablen Bereich im Tensorflow haben. Ich kann es beim Erstellen eines Graphen am Anfang auf einen bestimmten Wert initialisieren, aber dann ist keine Änderung möglich. Ich habe versucht, die Länge der globalen Liste als externen Parameter zu verwenden, aber es hat nicht funktioniert.

self._train_data = [] 
for _ in range(variable_length): 
    placeholder_input = tf.placeholder(tf.float32, shape=[self._batch_size, self._input_size])  
    self._train_data.append(placeholder_input) 

Antwort

1

Die TensorFlow seq2seq tutorial diskutiert die Probleme mit variablen Längen und enthält Code, mit ihnen zu beschäftigen. Es wurde vor tf.while_loop geschrieben, mit dem Sie jetzt mehrere Längen noch besser bewältigen können. Aber die allgemeinen Regeln gelten immer noch, also schau sie dir an!

+0

Ich habe den Code für lstm Zelle erstellt und ich möchte es verwenden. Um es zu erweitern, möchte ich variable Sequenzgröße/variable Anzahl von Ausläufen hinzufügen. Wie kann ich tf.while_loop in diesem Fall verwenden? Ich kann es verwenden, um den in der Frage platzierten Code auszuführen und nur eine bestimmte Anzahl von Platzhaltern an die Liste anzuhängen, jedoch wird der Feeding-Prozess vor dieser Schleife ausgeführt und ein Fehler tritt auf, dass "Listenindex außerhalb des Bereichs liegt". –