BrainScript を使用した最上位のコマンド
メインの最上位コマンドtrain
test
eval
/は、トレーニング、テスト、Eval のページで説明されています。 その他の最上位のコマンドについては、以下で詳しく説明します。
Adapt コマンド
このコマンドは、KL の相違正則化を使用して、既にトレーニング済みのモデルを調整します。 他のすべての適応は、モデル編集を使用して実行することをお勧めします。 adapt コマンドは、さらに 2 つのパラメーターを持つ点を除いて、train コマンドとよく似ています。
originalModelFileName
: 適合するモデルのファイル名。refNodeName
: KL の相違正則化に使用される計算ネットワーク内のノードの名前。
CV
このコマンドは、開発 (またはクロス検証) セットの異なるエポックから一連のモデルを評価し、最適なモデルの情報を表示します。 このコマンドは、テスト コマンドに使用されるパラメーターに加えて、パラメーターも使用します。
crossValidationInterval
: 評価する開始エポック、エポックインクリメント、最終エポックを識別する3つの整数の配列。 たとえば、3:2:9 は、モデル 3、5、7、9 が評価されることを意味します。sleepTimeBetweenRuns
: 実行の間に待機する秒数。 これは、GPU がホットすぎる場合にのみ必要です。
書き込みコマンド
このコマンドは、出力ノードの値をファイルに書き込みます。 関連するパラメーターは次のとおりです。
reader
: 入力データを読み取るリーダー構成ブロック。writer
: 出力データの書き込み方法を決定するライター構成ブロック。 この値が指定されていない場合は、outputPath パラメーターが使用されます。minibatchSize
: データセットの読み取りと処理に使用するミニバッチ サイズ。epochSize
: データセットのサイズ。 既定値は 0 です。 データセット全体が 0 に設定されている場合は評価されます。modelPath
: 出力の計算に使用するモデルへのパス。outputPath
: 出力をテキスト形式で書き込むファイルへのパス。 ライター ブロックが存在する場合、このパラメーターは無視されます。 outputPath または writer のいずれかが存在する必要があります。outputNodeNames
: ファイルに書き込まれる 1 つ以上の出力ノード名の配列。
編集コマンド
このコマンドは、モデルを編集し、変更したモデルをファイルに保存します。 これは非推奨です。 関連するパラメーターは次のとおりです。
editPath
: 実行する MEL スクリプトへのパス。ndlMacros
: MEL スクリプトで読み込まれて使用される NDL マクロ ファイルへのパス。
SVD コマンド
このコマンドは、学習可能なパラメータのSVD分解による低ランク近似を行います。 主な動機は、精度を維持しながら、推論速度を向上させるために、2 つの下位ランクマトリックスで重み行列を分解することです。 次に例を示します。
svd = [
action = "SVD"
modelPath = "train\lstm.model.67"
outputModelPath = "train\lstm.model.svd"
SVDConfig = "nodeConfigs"
]
関連するパラメーター ブロックは次のとおりです。
modelPath
: 初期モデルを読み込む場所を指定します。outputModelPath
: 変更後のモデルを保存する場所を指定します。SVDConfig
: ノードの異なるグループに対して SVD を実行する方法を指定する構成ファイル。 この構成は、次の 2 列形式です。<NodeNameRegex> <float>
最初の列は、1 つのグループ内のノード名と一致する正規表現です。 2 番目の列は、SVD の後に保持される SVDenergy の割合を示す浮動小数点数です。SVD エネルギーは単数形の値の合計として定義されます。 たとえば、構成
`LSTMoutput[1-3].Wx[ifco] 0.4`
`LSTMoutput[1-3].Wh[ifco] 0.6`
では、LSTM の非再帰接続 (x から i、f、c、o ゲート) に対してより積極的な SVD (0.4) 分解が発生し、NDL でパラメーター名が定義されているリカレント接続 (h から i、f、c、o ゲート) に対するより積極的な SVD 分解が発生します。
Dumpnode コマンド
このコマンドは、ノードの情報を出力ファイルにダンプします。これは、MEL でより詳細な制御を行うこともできます。 関連するパラメーターは次のとおりです。
modelPath
: ダンプするノードを含むモデル ファイルへのパス。nodeName
: ファイルに書き込むノードの名前。 指定されていない場合、すべてのノードがダンプされます。nodeNameRegex
: ファイルに書き込むノードの名前の正規表現。 指定した場合、nodeName
パラメーターは無視されます。outputFile
: 出力ファイルへのパス。 指定しない場合、modelPath に基づいてファイル名が自動的に生成されます。printValues
: ノードの値がモデルに永続化されている場合に、ノードに関連付けられている値を出力するかどうかを決定します。 既定値は true です。printMetadata
: ノードに関連付けられているメタデータ (ノード名、ディメンションなど) を出力するかどうかを決定します。 既定値は true です。
WriteWordAndClass コマンド (非推奨)
このコマンドは、テキスト トレーニング データを読み取り、トレーニング セット内の各単語の出現回数をカウントし、単語をカウントの降順で並べ替え、各単語に一意の ID を付け、各単語をクラスに割り当て、クラスベースの言語モデルをトレーニングするために (非推奨) LMSequenceReader によって使用される 4 列ボキャブラリ ファイルとワードツー ID マッピング ファイルを生成します。 関連するパラメーターは次のとおりです。
inputFile
: テキスト トレーニング ファイルへのパス。outputVocabFile
: 生成された 4 列ボキャブラリ ファイルの名前。 最初の列は単語 ID、2 番目の列は単語のカウント、3 番目の列は単語、4 番目の列はクラス ID です。outputWord2Cls
: 生成された word-to-class マッピング ファイルへのパス。outputCls2Index
: 生成された class-to-wordId マッピング ファイルへのパス。vocabSize
: 目的のボキャブラリのサイズ。nbrClass
: 必要なクラス数。cutoff
: カットオフ数。 単語の数がこの値以下の場合、単語は . 既定値は 2 です。 このパラメーターは、目的のボキャブラリ サイズがトレーニング セットに存在する実際の単語数よりも大きい場合にのみ使用されることに注意してください。
CreateLabelMap コマンド
多くの場合、ラベル マッピング ファイルを手動で作成するのは簡単です。 ただし、CreateLabelMap コマンドの目的であるラベル マッピング ファイルを自動的に生成したい場合があります。 現在、このアクションをサポートするリーダーは UCIFastReader のみです。 関連するパラメーターは次のとおりです。
section
: ラベル マッピング ファイルの生成に使用されるリーダー サブブロックを持つパラメーター ブロック名 (通常はトレーニング ブロック)。 生成されたラベル マッピング ファイルは、このパラメーター ブロックのリーダー サブブロックで指定された labelMappingFile に保存されます。minibatchSize
: ラベル マッピング ファイルの作成時に使用するミニバッチ サイズ。
DoEncoderDecoder コマンド
ニューラル ネットワークを使用して、ネットワークのチェーンを形成できます。 最初のいくつかのネットワークはエンコーダーとして機能し、次のネットワークはデコーダーとして機能します。 特別なノード PairNetworkNode は、他のネットワークによって接続されるソケットを提供するために、各ネットワークで使用されます。 関連するパラメーターは次のとおりです。
section
: encoderReader と decoderReader は、エンコーダーとデコーダーのリーダーです。 同様に、検証セットの encoderCVReader とデコーダーCVReader の場合も同様です。encoderNetworkBuilder
anddecoderNetworkBuilder
: これらは、使用する単純なネットワーク ビルダーを指定します。
BNStat コマンド
バッチ正規化ノードのデータセットの評価とテストの平均と分散の評価は難しいです。 平均と分散はトレーニング中に実行平均または exp で計算できますが、バッチ正規化の平均と分散 (バッチ正規化後の統計) を生成するためのより安定した堅牢な方法を提供する傾向があります。 トレーニング後にコマンドを呼び出す必要があります。 各 BN 層の平均と分散が生成されます。
modelPath
: トレーニング済みモデルを含むモデル ファイルへのパスminibatchSize
: 評価中のミニバッチ サイズ (トレーニング minibatchSize と同じ)itersPerNode
: 各バッチ正規化ノードの統計反復reader
: テスト データを読み取るリーダー構成ブロック。 詳細については、閲覧者ブロックを参照してくださいenableDistributedMBReading
: 並列トレーニングでの分散読み取り