BrainScript LU Sequence Reader
Hinweis: Wenn Sie ein Neuankömmling sind, sollten Sie CNTK Textformatleser verwenden. In Zukunft wird LUSequenceReader veraltet und schließlich nicht unterstützt.
LUSequenceReader ähnelt LMSequenceReader. Es wird jedoch für Sprachverständnisaufgaben verwendet, die Eingabe- und Ausgabezeichenfolgen aufweisen, die unterschiedlich sind. Ein Beispiel für das Einrichten von LUSequenceReader ist wie folgt:
reader = [
readerType = "LUSequenceReader"
randomize = "none"
wordContext = 0:1:2
nbrUttsInEachRecurrentIter = 10
unk = "<unk>"
wordMap = "$DataDir$\inputmap.txt"
file = "$DataDir$\atis.train.IOB"
labelIn = [
useWordMap = true
beginSequence = "BOS"
endSequence = "EOS"
token = "$DataDir$\input.txt"
]
labels = [
beginSequence = "O"
endSequence = "O"
token = "$DataDir$\output.txt"
]
]
Der LUSequenceReader hat folgende Parameter:
wordContext
: Gibt ein Kontextfenster an. Gibt beispielsweisewordContext=0:1:2
ein Kontextfenster von 3 an. In diesem Kontextfenster liest sie die Eingabe zu einem aktuellen Zeitpunkt, das nächste Mal und die Uhrzeit nach dem nächsten Mal. Ein weiteres Beispiel wärewordContext=0:-1
. In diesem Fall liest LUSequencReader ein Kontextfenster von 2, das aus der aktuellen Eingabe und der unmittelbaren letzten Eingabe besteht.randomize
: es ist entwederNone
oderAuto
. Dies gibt den Modus an, ob die Satz-Randomisierung des gesamten Korpus ausgeführt wird.nbrUttsInEachRecurrentIter
: Dies gibt den Grenzwert der Anzahl der Sätze in einem Minibatch an. Der Leser sortiert eingabesätze mit derselben Länge bis zum angegebenen Grenzwert in jeden Minibatch. Bei wiederkehrenden Netzwerken setzt Trainer ausgeblendete Layeraktivitäten nur am Anfang der Sätze zurück. Aktivitäten ausgeblendeter Ebenen werden an den nächsten Minibatch übertragen, wenn ein Ende des Satzes nicht erreicht ist. Die Verwendung mehrerer Sätze in einem Minibatch kann Schulungsprozesse beschleunigen.unk
: Dies gibt das Symbol an, das nicht angezeigte Eingabesymbole darstellt. In der Regel ist dieses Symbol "".wordMap
: Dies gibt eine Datei an, die Eingaben anderen Eingaben zugeordnet. Dies ist nützlich, wenn der Benutzer einige Eingaben unbekannten Symbolen zuordnen möchte. Ein Beispiel für die Wortzuordnungsdatei lautet wie folgt:buy buy
trans <unk>
file
: die Datei enthält Eingaben und seine Bezeichnungen. Die letzte Spalte ist die Bezeichnung, und die anderen Spalten enthalten Eingaben. Ein Beispiel für die Schulungsdatei ist unten.BOS O
flight O
from O
charlotte B-fromloc.city_name
to O
las B-toloc.city_name
vegas I-toloc.city_name
EOS O
Im obigen Beispiel können Sie auch zwei Unterblöcke namens labelIn
und labels
.
labelIn
: der Abschnitt für eingabebezeichnung. Es enthält die folgenden SetupsuseWordMap
–true
oderfalse
, gibt an, ob die Verwendung einer Wortzuordnung zum Zuordnen von Eingabewörtern zu anderen Eingabewörtern verwendet wird.beginSequence
– Das SatzanfangssymbolendSequence
– Das Endsymbol für den Satztoken
– Tokendatei enthält eine Liste der Eingabewörter. Ihre Aufträge sind nicht wichtig.
labels
: der Abschnitt für die Ausgabebezeichnung.token
– Tokendatei enthält eine Liste der Ausgabebezeichnungen. Ihre Reihenfolge ist nicht wichtig, solange die Token eindeutig sind.