共用方式為


簡單網路產生器

SimpleNetworkBuilder允許使用簡單標準網路類型搭配幾行組態。 僅支援一組有限的組態選項。 您可以改用 BrainScriptNetworkBuilder 來定義更複雜的網路。

若要使用 SimpleNetworkBuilder ,請在定型組態中包含相同名稱的組態區塊。 省略選項時,會假設預設值。 我們先提供簡潔的範例,並列出下方的所有控制項參數和選項。

SimpleNetworkBuilder = [
    # 2 inputs, 2 hidden layers with 50 element nodes each, 2 outputs
    layerSizes        = 2:50*2:2
    trainingCriterion = "CrossEntropyWithSoftmax"
    evalCriterion     = "ErrorPrediction"
    layerTypes        = "Sigmoid"
    applyMeanVarNorm  = true
]

在上述範例中,可以省略 'trainingCriterion' 和 'layerTypes',因為它們正在使用預設值。 下列參數可供使用:

  • initValueScale:用來調整用於初始化之亂數範圍的值。 預設為 1。 如果使用統一分佈初始化模型參數,亂數範圍將會調整為 [-0.05 * initValueScale, 0.05 * initValueScale] 。 如果使用 Gaussian 分佈初始化模型參數,則會將標準差調整為 0.2 * initValueScale * fanout^(-1/2)

  • layerTypes:隱藏層中非線性運算的類型。 有效值為 Sigmoid (預設)、TanhRectifiedLinear

  • uniformInit:判斷是否要使用統一分佈來初始化模型參數。 有效值 (true 預設) (,並使用 false Gaussian 散發來初始化模型參數) 。

  • applyMeanVarNorm:是否要在輸入上套用平均/變異數正規化。 有效值為 truefalse (預設值)。

  • addDropoutNodes:是否要新增卸載節點。 預設為 false。 如果指定為 true ,則會將卸載節點套用至輸入節點和每個隱藏層的輸出。

  • layerSizes:指定圖層的維度。 例如, layerSizes=128:10:200:4000 描述具有兩個隱藏層的類神經網路。 第一個隱藏層的維度為 10,而第二個隱藏層的維度為 200。 輸入和輸出層的維度分別為 128 和 4000。

  • trainingCriterion:用於定型的準則。 預設為 CrossEntropyWithSoftmax。 替代專案為 SquareErrorCrossEntropyClassBasedCrossEntropyWithSoftmaxClassBasedCrossEntropyWithSoftmax適用于以類別為基礎的定型,如果輸出維度很大,因此必須分割成類別,才能加速定型和評估。

  • evalCriterion:評估的準則。 值的選取範圍與 相同 trainingCriterion

  • lookupTableOrder:指定 lookupNode 中展開的內容順序。 預設值是 1。 將它設定為 3 之類的值,會依照 3 的順序,以內容相依的方式展開輸入維度。 例如,如果輸入觀察的維度為 20,請將此值設定為 3 會將輸入節點維度設定為 60。

對於迴圈神經網路 (RNN) ,還有其他參數。

  • recurrentLayer:指定包含自我遞迴連線的圖層。 根據預設,沒有遞迴層。 使用語法 n1:n2:n3 來指定 n1、n2 和 n3 層具有迴圈連線。

  • defaultHiddenActivity:存取第一個觀察前的值時,延遲節點所使用的預設隱藏層活動值。 預設值是 0.1

  • rnnType:預先定義的網路類型。 有效值為:

    • SIMPLENET:摘要轉送神經網路。 這是預設的網路類型。
    • SIMPLERNN:簡單的 RNN,可能是深層 RNN,其中數層具有遞迴迴圈。
    • CLASSLM:以類別為基礎的簡單 RNN。 它會使用疏鬆輸入、疏鬆參數和疏鬆輸出。 這通常用於語言模型化工作。
    • LBLM:log-bilinear 類神經網路。
    • LSTM:長期短期記憶體神經網路。
    • CLASSLSTM:類別型長期記憶體類神經網路。 它會使用疏鬆輸入、疏鬆參數和疏鬆輸出。 這通常用於語言模型化工作。

下一步:使用 BrainScriptNetworkBuilder 定義您自己的複雜網路。