2017-06-24 2 views
0

Ich habe einige Referenzen wie in https://github.com/tensorflow/tensorflow/issues/2354 und https://indico.io/blog/tensorflow-data-inputs-part1-placeholders-protobufs-queues/ zu sehen, um zu sehen, wie wir Padding und Shuffling innerhalb Batch durchführen können. Der erste Link ist näher an dem, was ich erwarte, tut aber Padding, das nicht innerhalb des Stapels mischt. Einzelne Chargen werden gemischt, nicht jedoch die Chargenelemente.Batch Padding und Shuffling für tf, train.SequenceBeispiel

in der zweiten Link-Standard-Tensorflow-APIs werden wie tf.train.batch verwendet, die Padding tut aber nicht mischen und tf.train.suffle_batch, die Shuffling aber nicht Auffüllen tut.

gibt es einen anderen Ansatz sowohl Polsterung durchzuführen und mit dem Batch-schlurfenden

+0

Falls Sie dies für RNN benötigen, beachten Sie, dass dynamic_rnn Sequenzen ungleicher Länge als Eingabe erlaubt, für die Sie den Sequenzlängenparameter angeben müssen. Dies sollte die Auffüllung für Sie erledigen (falls Sie keine Antwort finden, wie die Batch- und Shuffle_batch-Funktionen kombiniert werden können). –

+0

Haben Sie eine Referenz, die besagt, dass dynamic_rnn die Auffüllung basierend auf Sequenzlängen tun sollte. –

+0

Ich werde einige URLs in eine Antwort unten posten, weil sie nicht in dieses Kommentarfeld passen ... –

Antwort

0

In Bezug auf dynamic_rnn, die Sie im Kommentar gefragt wurden, überprüfen Sie die Dokumentation hier: dynamic_rnn

Den Parameter Sie angeben müssen ist sequence_length=[], das standardmäßig None ist. Sie sollen einen Vektor mit so vielen Sequenzen wie bei jedem Aufruf an dynamic_rnn übergeben, wobei jedes Vektorelement eine Zahl ist, die die Anzahl der Schritte jeder Sequenz darstellt. Ich denke, letztlich sollte es alle gleich lang und mit Nullen auffüllen, aber der Punkt ist, den Zustand über die leeren Stufen zu aktualisieren.

Ich musste das nie selbst tun, aber habe verschiedene Beispiele gesehen, also solltest du vielleicht suchen. Ein Beispiel ist hier: Variable Length Sequences. Hoffe, das hilft ...

+0

danke für Ihre Antwort. Der Aufruf von dynamic_rnn mit einem Parameter sequence_length gibt gepolsterte Ausgaben zurück. Was ich jedoch möchte, ist auf der Eingabeseite, wo ich Padding und Shuffling innerhalb eines Stapels durchführen möchte. Derzeit führe ich diese Aktionen über die Python-Methode durch, die gut funktioniert. Allerdings würde ich gerne SequenceExample verwenden, für das ich keinen einheitlichen Ansatz für Shuffling und Padding finden konnte. hoffe mein Anliegen ist verstanden –