共用方式為


循序

將函式陣列組成新的函式,以逐一呼叫這些函式 (「轉送函式組合」) 。

Sequential (arrayOfFunctions)

參數

arrayOfFunctions:函式的 BrainScript 陣列,例如使用 : 運算子建構: (LinearLayer{1024} : Sigmoid)

傳回值

此函式會傳回另一個函式。 傳回的函式會採用一個引數,並傳回依序套用所有指定函式至輸入的結果。

描述

Sequential() 是一項功能強大的作業,可讓您在神經網路中精簡表達非常常見的情況,其中輸入是透過層的進度傳播來處理輸入。 您可能已熟悉其他類神經網路工具組。

Sequential() 會採用函式陣列做為其引數,並傳回 新的 函式,以依序叫用這些函式,每次將一個的輸出傳遞至下一個函式。 請考慮此範例:

FGH = Sequential (F:G:H)
y = FGH (x)

在這裡,冒號 (:) 是 BrainScript 的表示陣列語法。 例如, (F:G:H) 是具有三個元素 、 FG 、 和 H 的陣列。 例如,在 Python 中,這會撰寫為 [ F, G, H ]

上述定義的函 FGH 式表示與

y = H(G(F(x))) 

這稱為 「函式組合」,而且特別方便表達神經網路,其形式通常如下:

     +-------+   +-------+   +-------+
x -->|   F   |-->|   G   |-->|   H   |--> y
     +-------+   +-------+   +-------+

這完全以 Sequential (F:G:H) 表示。

最後,請注意下列運算式:

layer1 = DenseLayer{1024}
layer2 = DenseLayer{1024}
z = Sequential (layer1 : layer2) (x)

表示與下列不同之處:

layer = DenseLayer{1024}
z = Sequential (layer : layer) (x)

在後者形式中,會套用 具有相同共用參數集的相同 函式兩次,而在前者中,這兩個層有個別的參數集合。

範例

標準 4 隱藏層饋送轉送網路,如先前的深度類神經網路工作在語音辨識上所使用:

myModel = Sequential (
    DenseLayer{2048, activation=Sigmoid} :  # four hidden layers
    DenseLayer{2048, activation=Sigmoid} : 
    DenseLayer{2048, activation=Sigmoid} : 
    DenseLayer{2048, activation=Sigmoid} : 
    DenseLayer{9000, activation=Softmax}    # note: last layer is a Softmax 
)
features = Input{40}
p = myModel (features)