BrainScript 定型、測試、Eval
在這裡,我們將描述主要最上層命令 train
及其 test
/eval
對應的參數。 如需其他最上層命令,請參閱 對應的頁面。
定型命令
此命令會要求CNTK定型模型。 在 [組態檔概觀] 頁面上提供命令區段的範例 train
。 相關的參數如下:
reader
– 用來判斷如何載入輸入資料的讀取器組態區塊。 如需詳細資訊,請參閱 讀取器區塊。SGD
– SGD 訓練設定。 如需詳細資訊,請參閱 SGD 區塊。BrainScriptNetworkBuilder
– BrainScript 組態區塊。 如需詳細資訊,請參閱 BrainScript 網路產生器。SimpleNetworkBuilder
– 簡單的網路產生器組態區塊。 如需詳細資訊,請參閱 簡單網路產生器。cvReader
– (選擇性) 交叉驗證資料的讀取器組態區塊。makeMode
– 如果設定為true
(預設) 定型將會從中斷的任何 epoch 繼續。 如果設定為false
定型,將會從頭開始重新開機。firstMBsToShowResult
– 指出 epoch 開頭要顯示個別的中繼結果的迷你batche 數目。numMBsToShowResult
– 指出應該顯示中繼結果的迷你數量之後。
測試或 Eval 命令
這些命令會評估/測試模型以取得精確度,通常是使用測試資料集。 相關的參數如下:
reader
– 讀取器組態區塊,可讀取測試資料。 如需詳細資訊,請參閱 讀取器區塊。modelPath
– 要評估之模型的路徑。BrainScriptNetworkBuilder
– 如果指定此專案,則模型不只從modelPath
讀取,而是從此組態建構。 這可用來即時修改模型以進行評估。minibatchSize
– 讀取和處理資料集時要使用的迷你批次大小。epochSize
– 資料集的大小。 預設為0
。 如果資料集設定為0
,則會評估整個資料集。numMBsToShowResult
– 指出應該顯示中繼結果的迷你數量之後。evalNodeNames
– 要評估的一或多個節點名稱陣列。distributedMBReading
- 接受布林值:true 或 false;預設值為 false。 對於支援分散式迷你批次讀取的讀取器,它應該設定為 true。 如果您使用CNTK文字格式讀取器、影像讀取器或複合資料讀取器,您應該設定 distributedMBReading=true。
下列範例採用 Simple2d 範例。 在該範例中,會在 modelPath
最上層定義,並同時由 train
和 test
命令自動挑選。
Simple_Demo_Test = [
action = "test"
# Parameter values for the reader
reader = [
readerType = "CNTKTextFormatReader"
file = "$DataDir$/SimpleDataTest_cntk_text.txt"
randomize = false
input = [
features = [
dim = 2 # two-dimensional input data
format = "dense"
]
labels = [
dim = 2 # two-dimensional labels
format = "dense"
]
]
]
]