次の方法で共有


BrainScript UCI Fast Reader

警告

UCIFastReader は非推奨となり、CNTKテキスト形式リーダーに置き換えられます。 ネットワークCNTKテキスト形式リーダーを使用してください。


UCIFastReader は、テキスト ベースの UCI 形式データを読み取ります。各データ レコードは、スペース区切りの浮動小数点特徴とラベル値の行です。 ラベル情報が指定されている場合、ラベル情報は各行の先頭または末尾にあります。 UCIFastReader を使用するには、次のように設定しますreaderTypeUCIFastReader

reader = [
    readerType = "UCIFastReader"
    file = "c:\cntk\data\mnist\mnist_train.txt"
    features = [
        dim = 784
        start = 1
    ]
    labels = [
        dim = 1
        start = 0
        labelDim = 10
        labelMappingFile = "c:\cntk\data\mnist\mnistlabels.txt"
    ]
]

この例では、名前が features 2 つのサブブロックと labels. これらの名前は、ネットワーク内の計算ノードとファイルから読み込まれたデータと一致するために、データ リーダーによって使用されます。 単純なネットワーク ビルダーを使用してネットワークを作成し、 features それぞれフィーチャ ノードと labels ラベル ノードの標準名にする場合。 NDL ネットワーク ビルダーを使用してネットワークを定義した場合は、これらの名前がネットワーク内の対応するノードと一致していることを確認する必要があります。 UCIFastReader には、次のパラメーターがあります。

  • file: データセットを含むファイル。 UCIFastReader ではファイルが同じである必要があり、レベルを上げてもこの制限が満たされていることが確認されるため、このパラメーターは機能とラベルのサブブロックから上に移動されました。

  • dim: 入力値のディメンション。 UCI データ ファイルの各列は、入力データの 1 つのディメンションを表していることに注意してください。

  • start: 入力データの開始列 (0 から始まる)。

  • labelDim: 使用可能なラベル値の数。 ラベル ノードのディメンションはこの値によって決定されるため、このパラメーターはカテゴリ ラベルに必要です。 ラベル値自体は、通常、UCI データ ファイルの 1 つの列で指定されることに注意してください。

  • labelMappingFile: ラベル値から数値ラベル識別子にマップするために使用されるファイルへのパス。 通常、このファイルには、テキストまたは数値である可能性のあるすべてのラベル値 (1 行に 1 つ) が一覧表示されます。 0 から始まる行番号は、CNTKがそのラベルを識別するために使用される識別子です。 トレーニングと評価には、同じラベル マッピング ファイルが使用されていることが重要です。 これを行うには、labelMappingFile パラメーターを上に移動して、トレーニング ブロックと評価ブロックの両方で共有できるようにします。

  • customDelimiter: カスタマイズされた区切り記号。 既定では、区切り記号としてスペースが使用されます。 このパラメーターを使用すると、スペースに加えてコンマやセミコロンなどの別の区切り記号を使用することもできます。 ただし、このリーダーは空白フィールド (行内に 2 つのコンマなど) を処理しません。空白の間の有無に関係ありません。

  • customDecimalPoint: カスタマイズされた小数点。 既定では、小数点としてドットが使用されます。 このパラメーターを使用すると、ヨーロッパの国で使用される小数点など、別の小数点を使用することを選択できます。

  • labelType: ラベル列の解釈方法を示します。 既定では、"Category" に設定されています。つまり、値 (文字列の場合もあります) からクラス ID にマップして、値が 1 ホット表現に変換されるようにマッピング テーブルが必要です。 値が変換なしで直接使用されることを示すには "Regression" に設定するか、ラベルが使用されていないことを示す "None" に設定できます。

その他のオプション:

  • traceLevel: リーダーの詳細度を定義する整数。 現在使用されている: 0 (トレースなし) と 1。 既定値は 0 です。
  • prefetch: プリフェッチを有効にするかどうかを示すブール値 ("true" または "false")。 プリフェッチとは、データがメイン処理に非同期的に読み取られるという事実を指します。 既定値は false です。
  • randomize: 行の読み取り順序を制御する文字列 ("none"、"auto")。 "None" の場合は、線形順に読み取られます。"auto" の場合、ランダムに選択されます。TODO には、特定の制約の下で整数を指定することもできます。
  • minibatchMode: 指定して "partial" に設定すると、部分ミニバッチが受け入れられます。それ以外の場合、トレーニング データのサイズはミニバッチ サイズの倍数である必要があります。