2017-03-21 6 views
5

Ich möchte einen bidirektionalen LSTM im Tensorflow trainieren, um ein Sequenzklassifikationsproblem (Stimmungseinstufung) durchzuführen.Bidirektionaler LSTM für Sequenz variabler Länge in Tensorflow

Da Sequenzen variable Längen haben, werden Batches normalerweise mit Vektoren von Null aufgefüllt. Normalerweise verwende ich den Parameter sequence_length in der uni-direktionalen RNN, um das Training auf den Padding-Vektoren zu vermeiden.

Wie kann dies mit bidirektionalen LSTM verwaltet werden. Arbeitet der Parameter "sequence_length" automatisch von einer fortgeschrittenen Position in der Sequenz für die Rückwärtsrichtung?

Danke

+0

Menschen, die als zu weit gefasst schließen Stimmen: bitte erklären. –

Antwort

2

bidirectional_dynamic_rnn auch einen sequence_length Parameter hat, die sich um Sequenzen von variablen Längen nimmt.

https://www.tensorflow.org/api_docs/python/tf/nn/bidirectional_dynamic_rnn (mirror):

sequence_length: Ein int32/int64 Vektor, Größe [batch_size], die tatsächlichen Längen für jede der Sequenzen enthält.

Sie ein Beispiel hier sehen kann: https://github.com/Franck-Dernoncourt/NeuroNER/blob/master/src/entity_lstm.py

+0

Danke @FranckDernoncourt. Wie wäre es mit der Polsterung? Müssen Sie am Ende für den Vorwärts-RNN auffüllen und am Anfang am Rückwärts-RNN puffern? – Escachator

Verwandte Themen