共用方式為


BrainScript UCI 快速讀取器

警告

UCIFastReader 已被取代,而且正由CNTK文字格式讀取器取代。 請為您的網路使用CNTK文字格式讀取器


UCIFastReader 會讀取以文字為基礎的 UCI 格式資料,其中每個資料記錄都是以空格分隔的浮點特徵和標籤值行。 如果提供標籤資訊,則標籤資訊位於每一行的開頭或結尾。 若要使用 UCIFastReader,請將 設定 readerTypeUCIFastReader 作為 in

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"
    ]
]

在此範例中,您也可以注意到名為 和 labels 的兩個 features 子區塊。 資料讀取器會使用這些名稱來比對網路中計算節點,以及從檔案載入的資料。 如果使用簡單的網路建立器來建立您的網路, features 而且 labels 分別是功能與標籤節點的標準名稱。 如果您使用 NDL 網路產生器定義網路,您必須確定這些名稱符合您網路中對應的節點。 UCIFastReader 具有下列參數:

  • file:包含資料集的檔案。 此參數已從功能和標籤子區塊向上移動,因為 UCIFastReader 要求檔案相同,而上移層級可確保符合此限制。

  • dim:輸入值的維度。 請注意,UCI 資料檔案中的每個資料行都代表輸入資料的一個維度。

  • start:起始資料行 (輸入資料的以零起始) 。

  • labelDim:可能的標籤值數目。 類別標籤需要此參數,因為標籤節點的維度將由此值決定。 請注意,標籤值本身通常會在 UCI 資料檔案中的一個資料行中指定。

  • labelMappingFile:用來從標籤值對應至數值標籤識別碼的檔案路徑。 檔案通常會列出所有可能的標籤值,每行一個可能為文字或數值。 以零起始的行號是CNTK用來識別該標籤的識別碼。 請務必使用相同的標籤對應檔案來定型和評估。 這可以藉由將 labelMappingFile 參數向上移動,以便讓訓練和評估區塊共用它。

  • customDelimiter:自訂分隔符號。 根據預設,空格會當做分隔符號使用。 使用此參數,除了空格之外,您還可以選擇使用另一個分隔符號,例如逗號或分號。 不過請注意,此讀取器不會處理空白欄位,例如資料列中的兩個逗號,其中含有或不含空白字元。

  • customDecimalPoint:自訂的小數點。 根據預設,點會當做小數點使用。 使用此參數,您可以選擇使用另一個小數點,例如歐洲國家/地區所使用的小數點。

  • labelType:表示應該如何解譯標籤資料行。 根據預設,它會設定為 「Category」,這表示需要對應資料表才能從值對應, (可以是字串) 到類別識別碼,以便將值轉換成 1-hot 標記法。 它可以設定為 「Regression」,表示值是直接使用,而不需要任何轉換或 「None」 表示未使用任何標籤。

其他選項:

  • traceLevel:定義讀取器詳細資訊的整數。 目前使用:0 (沒有追蹤) 和 1。 預設為 0。
  • prefetch:布林值 (「true」 或 「false」) ,指出是否應啟用預先擷取。 預先擷取是指資料以非同步方式讀取到主要處理的事實。 預設為 False。
  • randomize:字串 (「none」、「auto」) 控制應該讀取行的順序。 如果是 「None」,則會以線性順序讀取;如果是「自動」,則會隨機挑選它們;TODO 也可以是特定條件約束下的整數。
  • minibatchMode:如果指定 並設定為 「partial」,則會接受部分迷你討論;否則,定型資料大小必須是迷你批次大小的倍數。