Zum Trainieren eines LSTM-Modells in Tensorflow habe ich meine Daten in einem tf.train.SequenceExample -Format strukturiert und in einem TFRecord-Datei Ich möchte jetzt die neue DataSet-API verwenden, um gepolsterte Stapel für das Training zu erstellen . In der Dokumentation gibt es ein Beispiel für die Verwendung von "padded_batch", aber für meine Daten kann ich nicht herausfinden, welchen Wert
Zum Lesen der TFrecord-Datei in die Stapel habe ich den folgenden Python-Code geschrieben:
%Vor% Der Code funktioniert gut, wenn ich dataset = dataset.batch(1)
verwende (in diesem Fall ist kein Padding erforderlich), aber wenn ich die padded_batch
Variante verwende, erhalte ich den folgenden Fehler:
TypeError: Wenn flache Struktur eine Sequenz ist, muss Eingabe auch a sein Sequenz. Eingabe hat den Typ:.
Können Sie mir helfen herauszufinden, was ich für den Parameter padded_shapes übergeben soll?
(Ich weiß, dass es eine Menge Beispielcode gibt, der Threading und Warteschlangen dafür verwendet, aber ich würde lieber die neue DataSet-API für dieses Projekt verwenden)
Sie müssen ein Tupel von Formen übergeben. In Ihrem Fall sollten Sie
übergeben %Vor%oder versuchen
%Vor%Weitere Informationen finden Sie in diesem Code . Ich musste diese Methode debuggen, um herauszufinden, warum es für mich nicht funktionierte.
Wenn Ihr aktuelles Objekt Dataset
ein Tupel enthält, können Sie auch die Form jedes gepolsterten Elements angeben.
Zum Beispiel habe ich einen (same_sized_images, Labels)
-Datensatz und jedes Label hat eine andere Länge, aber denselben Rang.
Tags und Links python tensorflow lstm tensorflow-datasets