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: 클래스 정보라는 단어를 지정합니다. 클래스 기반 언어 모델링에 사용됩니다. 클래스 정보의 예는 다음과 같습니다. 첫 번째 열은 단어 인덱스입니다. 두 번째 열은 발생 횟수이고, 세 번째 열은 단어이고, 마지막 열은 단어의 클래스 ID입니다.

    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: 파일에 텍스트 문자열이 포함되어 있습니다. 예를 들면 다음과 같습니다. 이 예제에서는 이름이 labelIn1개인 하위 블록도 확인할 수 있습니다.

    피에르 N세는 11월 이사로 이사회에 합류할 예정이다. N 씨는 n.v. 네덜란드 출판 그룹의 회장입니다.

  • labelIn: 입력 레이블에 대한 섹션입니다. 다음 설정이 포함되어 있습니다.

    • beginSequence – 문장 시작 기호
    • endSequence – 문장 끝 기호
    • labelDim – 레이블의 차원입니다. 이는 일반적으로 어휘 크기를 의미합니다.