Partager via


Lecteur de séquence lu BrainScript

Remarque : si vous êtes nouveau, envisagez d’utiliser CNTK lecteur de format texte. Dans le futur LUSequenceReader sera déconseillé et finalement pas pris en charge.

LUSequenceReader est similaire à LMSequenceReader. Il est toutefois utilisé pour les tâches de compréhension du langage qui ont des chaînes d’entrée et de sortie différentes. Un exemple de configuration de LUSequenceReader est le suivant :

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 a les paramètres suivants :

  • wordContext: cela spécifie une fenêtre de contexte. Par exemple, wordContext=0:1:2 spécifie une fenêtre de contexte de 3. Dans cette fenêtre de contexte, elle lit l’entrée à l’heure actuelle, la prochaine fois et l’heure après la prochaine fois. Un autre exemple serait wordContext=0:-1. Dans ce cas, LUSequencReader lit une fenêtre de contexte de 2 qui se compose de l’entrée actuelle et de la dernière entrée immédiate.

  • randomize: c’est soit None ou Auto. Cela spécifie le mode d’exécution de la aléatoire des phrases de l’ensemble du corpus.

  • nbrUttsInEachRecurrentIter: cela spécifie la limite du nombre de phrases dans un minibatch. Le lecteur organise les phrases d’entrée de même longueur, jusqu’à la limite spécifiée, dans chaque minibatch. Pour les réseaux récurrents, le formateur réinitialise les activités de couche masquées uniquement au début des phrases. Les activités des couches masquées sont transmises au minibatch suivant si une fin de phrase n’est pas atteinte. L’utilisation de plusieurs phrases dans un minibatch peut accélérer les processus d’entraînement.

  • unk: cela spécifie le symbole pour représenter les symboles d’entrée invisibles. Généralement, ce symbole est « ».

  • wordMap: cela spécifie un fichier qui mappe les entrées à d’autres entrées. Cela est utile si l’utilisateur souhaite mapper certaines entrées aux symboles inconnus. Voici un exemple de fichier de mappage de mots :

    buy buy

    trans <unk>

  • file: le fichier contient l’entrée et ses étiquettes. La dernière colonne est l’étiquette et les autres colonnes contiennent des entrées. Voici un exemple de fichier d’entraînement.

    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

Dans l’exemple ci-dessus, vous pouvez également remarquer deux sous-blocs nommés labelIn et labels.

  • labelIn: section pour l’étiquette d’entrée. Il contient les configurations suivantes

    • useWordMaptrue ou false, spécifie si l’utilisation de la carte de mots pour mapper les mots d’entrée à d’autres mots d’entrée.
    • beginSequence – symbole de début de phrase
    • endSequence – symbole de fin de phrase
    • token – le fichier de jeton contient une liste de mots d’entrée. Leurs ordres ne sont pas importants.
  • labels: section pour l’étiquette de sortie.

    • token – le fichier de jeton contient une liste d’étiquettes de sortie. Leur ordre n’est pas important tant que les jetons sont uniques.