共用方式為


BrainScript 設定檔概觀

若要執行CNTK您使用類似于 cntk configFile=yourExp.cntk 您的Exp.cntk 是CNTK組態檔的命令列,其通常包含數個命令區塊。 命令區塊是組態的最上層區塊。 每個命令區塊都必須指定要以相關資訊執行的動作。 為了說明組態和命令區塊,我們使用下列簡單範例 (從 MNIST 範例) 。

rootDir = ".."   # often, this is overwritten on the command line

configDir = "$rootDir$/Config"
dataDir   = "$rootDir$/Data"
outputDir = "$rootDir$/Output"
modelDir  = "$outputDir$/Models"

command = mnistTrain

mnistTrain = [
    action = "train"

    # network definition
    BrainScriptNetworkBuilder = (new ComputationNetwork
        include "$ConfigDir$/01_OneHidden.bs"
    )

    # SGD learner configuration
    SGD = [
        modelPath = "$ModelDir$/01_OneHidden_Model.dnn"
        epochSize = 60000
        minibatchSize = 32
        learningRatesPerMB = 0.1
        maxEpochs = 30
    ]

    # reader configuration    
    reader = [
        readerType = "CNTKTextFormatReader"
        file = "$DataDir$/Train-28x28_cntk_text.txt"
        input = [
            features = [
                dim = 784
                format = "dense"
            ]
            labels = [
                dim = 10
                format = "dense"
            ]
        ]
    ]
]

在此範例中,您可以注意到所有組態值都會指定為名稱/值組。 值可以是數值、字串、清單,甚至是組態區塊。 您可以指定變數,例如 DataDir 在此範例中,並使用標記法 $DataDir$ 稍後在腳本中參考它們。

最上層組態參數 command 會決定要執行的命令區塊,以及指定多個命令區塊時執行的順序。 在此範例中 mnistTrain ,將會執行命令區塊。 此命令區塊會指定要執行的動作,在此案例中為 train 。 通常有三個與定型動作相關聯的參數區塊:

  • 網路建立器區塊,指定如何從頭開始建置網路,以及如何從現有的模型檔案載入模型,
  • 學習模組區塊,指定要使用的定型演算法,
  • 讀取器區塊,指定載入功能和標籤的位置和方式。

在此特定範例中,BrainScriptNetworkBuilder區塊所指示的網路產生器可用來定義網路、STochastic 漸層下降學習演算法,如SGD 區塊所指示,用來定型模型,而CNTK文字格式讀取器會用來從CNTK文字格式的檔案載入特徵和標籤。 請注意,讀取器會實作為個別 DLL,而讀取器的名稱也是將載入至讀取資料的 DLL 檔案名。

最常使用的組態區塊如下:

  • 網路產生器
  • 學習
    • SGD - 使用隨機漸層下降演算法來定型模型。 這是大部分應用程式所需的定型器。
  • 資料讀取器
    • CNTK文字格式讀取器- 讀取以文字為基礎的CNTK格式,其支援在相同檔案中結合多個輸入。
    • UCI 快速讀取器 (已被取代) - 讀取以文字為基礎的 UCI 格式,其中包含一個檔案中結合的標籤和功能。
    • HTKMLF 讀取器 - 讀取 HTK/MLF 格式檔案,通常用於語音辨識應用程式。
    • LM 序列讀取器 - 讀取包含文字序列的文字型檔案,以預測文字序列。 這通常用於語言模型化。
    • LU 序列讀取器 - 讀取包含文字序列及其標籤的文字型檔案。 這通常用於語言理解。

在下列小節中,我們將詳細說明CNTK組態和上述區塊。 您也可以使用上述文字中的連結跳至個別區塊。

另請參閱