次の方法で共有


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: どちらかですNoneAuto。 これは、コーパス全体の文のランダム化を行うかどうかを示すモードを指定します。

  • nbruttsineachrecurrentiter: ミニバッチ内の文の数の制限を指定します。 リーダーは、指定された制限までの同じ長さの入力文を各ミニバッチに配置します。 反復ネットワークの場合、トレーナーは文の先頭でのみ非表示レイヤーアクティビティをリセットします。 非表示レイヤーのアクティビティは、文の末尾に到達しない場合、次のミニバッチに引き継がれる。 ミニバッチで複数の文を使用すると、トレーニング プロセスを高速化できます。

  • unk:これは、見えない入力シンボルを表すシンボルを指定します。 通常、この記号は "" です。 見えない単語がシンボルにマップされます。

  • wordclass: クラス情報という単語を指定します。 これは、クラス ベースの言語モデリングに使用されます。 クラス情報の例を次に示します。 最初の列は単語インデックスです。 2 番目の列は出現回数、3 番目の列は単語、最後の列は単語のクラス 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: ファイルにテキスト文字列が含まれています。 次に例を示します。 この例では、1 つのサブブロックの名前 labelInを付けることもできます。

    ピエールN歳は、非実行ディレクター11月として取締役会に参加します. N 氏はオランダの出版グループの会長です

  • labelIn: 入力ラベルのセクション。 これには、次のセットアップが含まれています

    • beginSequence – 文の開始記号
    • endSequence – 文の終了記号
    • labelDim – ラベルのディメンション。 これは通常、ボキャブラリのサイズを意味します。