共用方式為


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 最上層定義,並同時由 traintest 命令自動挑選。

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