BrainScript UCI 快速讀取器
警告
UCIFastReader 已被取代,而且正由CNTK文字格式讀取器取代。 請為您的網路使用CNTK文字格式讀取器。
UCIFastReader 會讀取以文字為基礎的 UCI 格式資料,其中每個資料記錄都是以空格分隔的浮點特徵和標籤值行。 如果提供標籤資訊,則標籤資訊位於每一行的開頭或結尾。 若要使用 UCIFastReader,請將 設定 readerType
為 UCIFastReader
作為 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」,則會接受部分迷你討論;否則,定型資料大小必須是迷你批次大小的倍數。