Sdílet prostřednictvím


Čtečka sekvence LU v BrainScriptu

Poznámka: Pokud jste nováčkem, zvažte použití čtečky formátu textu CNTK. V budoucnu bude LUSequenceReader zastaralý a nakonec se nepodporuje.

LUSequenceReader je podobný LMSequenceReader. Používá se ale pro úlohy porozumění jazyku, které mají vstupní a výstupní řetězce, které se liší. Příklad nastavení LUSequenceReader je následující:

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"
    ]
]

LuSequenceReader má následující parametry:

  • wordContext: Určuje kontextové okno. Například wordContext=0:1:2 určuje kontextové okno 3. V tomto kontextovém okně čte vstup v aktuálním čase, příště a čas po dalším čase. Dalším příkladem by bylo wordContext=0:-1. V takovém případě luSequencReader přečte kontextové okno 2, které se skládají z aktuálního vstupu a okamžitého posledního vstupu.

  • randomize: je to buď None nebo Auto. Určuje režim, zda se provádí randomizace vět celého korpusu.

  • nbrUttsInEachRecurrentIter: Určuje limit počtu vět v minibatchu. Čtečka uspořádá vstupní věty stejné délky až do zadaného limitu do každého minibatchu. U opakujících se sítí trenér resetuje skryté aktivity vrstvy pouze na začátku vět. Aktivity skrytých vrstev se přenesou na další minibatch, pokud není dosaženo konce věty. Použití více vět v minibatchu může urychlit trénovací procesy.

  • unk: Určuje symbol, který bude představovat neviditelné vstupní symboly. Obvykle je tento symbol "".

  • wordMap: Určuje soubor, který mapuje vstupy na jiné vstupy. To je užitečné, pokud chce uživatel mapovat některé vstupy na neznámé symboly. Příklad souboru mapování slov je následující:

    buy buy

    trans <unk>

  • file: soubor obsahuje vstup a jeho popisky. Poslední sloupec je popisek a ostatní sloupce obsahují vstupy. Příklad trénovacího souboru je uvedený níže.

    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

V předchozím příkladu si také můžete všimnout dvou dílčích bloků pojmenovaných labelIn a labels.

  • labelIn: oddíl pro vstupní popisek. Obsahuje následující nastavení:

    • useWordMaptrue nebo false, určuje, jestli se pomocí mapování slov mapují vstupní slova na jiná vstupní slova.
    • beginSequence – počáteční symbol věty
    • endSequence – symbol zakončení věty
    • token – Soubor tokenu obsahuje seznam vstupních slov. Jejich rozkazy nejsou důležité.
  • labels: oddíl pro popisek výstupu.

    • token – Soubor tokenu obsahuje seznam výstupních popisků. Jejich pořadí není důležité, pokud jsou tokeny jedinečné.