Поделиться через


Средство чтения последовательностей BrainScript LM

Примечание. Если вы новичок, рассмотрите возможность использования CNTK средства чтения текстового формата. В будущем LMSequenceReader будет нерекомендуем и в конечном итоге не поддерживается.

LMSequenceReader — это средство чтения, которое считывает текстовую строку. Он чаще всего используется для задач моделирования языка. Примером его установки является следующий пример:

reader = [
    readerType = "LMSequenceReader"
    randomize = false
    nbruttineachrecurrentiter = 10
    unk = "<unk>"
    wordclass = "$DataDir$\wordclass.txt"
    file = "$DataDir$\penntreebank.train.txt"
    labelIn = [
        labelDim = 10000
        beginSequence = "</s>"
        endSequence = "</s>"
    ]
]

LMSequenceReader имеет следующие параметры:

  • randomize: это либо None или Auto. Это указывает режим, определяющий, выполняется ли рандомизация предложения для всего тела.

  • nbruttsineachrecurrentiter: указывает ограничение числа предложений в мини-пакете. Средство чтения упорядочивает входные предложения одинаковой длины до указанного предела в каждом мини-батче. Для повторяющихся сетей тренер сбрасывает действия скрытого слоя только в начале предложений. Действия скрытых слоев переносятся на следующий мини-бат, если конец предложения не достигнут. Использование нескольких предложений в мини-пакете может ускорить процесс обучения.

  • unk: указывает символ, представляющий невидимые входные символы. Обычно этот символ имеет значение "". Невидимые слова будут сопоставлены с символом.

  • wordclass: указывает сведения о классе слов. Он используется для моделирования языка на основе классов. Ниже приведен пример сведений о классе. Первый столбец — это индекс слова. Второй столбец — количество вхождений, третий столбец — слово, а последний — идентификатор класса слова.

    0 42068 </s> 0

    1 50770 the 0

    2 45020 <unk> 0

    3 32481 N 0

    4 24400 of 0

    5 23638 to 0

    6 21196 a 0

    7 18000 in 1

    8 17474 and 1

  • file: файл содержит текстовые строки. Пример представлен ниже. В этом примере также можно заметить один вложенный блок с именем labelIn.

    Пьер N лет присоединится к совету в качестве неисключительного директора ноябрь. N mr. является председателем голландской издательской группы n.v.

  • labelIn: раздел для входной метки. Он содержит следующие настройки.

    • beginSequence — символ начала предложения.
    • endSequence — символ окончания предложения.
    • labelDim — измерение меток. Обычно это означает размер словаря.