簡單網路產生器
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
(預設)、Tanh
及RectifiedLinear
。uniformInit
:判斷是否要使用統一分佈來初始化模型參數。 有效值 (true
預設) (,並使用false
Gaussian 散發來初始化模型參數) 。applyMeanVarNorm
:是否要在輸入上套用平均/變異數正規化。 有效值為true
和false
(預設值)。addDropoutNodes
:是否要新增卸載節點。 預設為false
。 如果指定為true
,則會將卸載節點套用至輸入節點和每個隱藏層的輸出。layerSizes
:指定圖層的維度。 例如,layerSizes=128:10:200:4000
描述具有兩個隱藏層的類神經網路。 第一個隱藏層的維度為 10,而第二個隱藏層的維度為 200。 輸入和輸出層的維度分別為 128 和 4000。trainingCriterion
:用於定型的準則。 預設為CrossEntropyWithSoftmax
。 替代專案為SquareError
、CrossEntropy
和ClassBasedCrossEntropyWithSoftmax
。ClassBasedCrossEntropyWithSoftmax
適用于以類別為基礎的定型,如果輸出維度很大,因此必須分割成類別,才能加速定型和評估。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
定義您自己的複雜網路。