Freigeben über


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 beispielsweise wordContext=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äre wordContext=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 entweder None oder Auto. 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 Setups

    • useWordMaptrue oder false, gibt an, ob die Verwendung einer Wortzuordnung zum Zuordnen von Eingabewörtern zu anderen Eingabewörtern verwendet wird.
    • beginSequence – Das Satzanfangssymbol
    • endSequence – Das Endsymbol für den Satz
    • token – 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.