Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vytvoří pole funkcí do nové funkce, která tyto funkce volá po druhé ("přeposlání složení funkce").
Sequential (arrayOfFunctions)
Parametry
arrayOfFunctions: Pole funkcí BrainScriptu, např. konstruované pomocí operátoru : : (LinearLayer{1024} : Sigmoid)
Vrácená hodnota
Tato funkce vrátí jinou funkci. Vrácená funkce přebírá jeden argument a vrátí výsledek použití všech zadaných funkcí v posloupnosti na vstup.
Description
Sequential() je výkonná operace, která umožňuje kompaktně vyjádřit velmi běžnou situaci v neurálních sítích, kde se vstup zpracovává jeho šířením přes průběh vrstev.
Možná ho znáte z jiných nástrojů neurálních sítí.
Sequential() vezme jako argument pole funkcí a vrátí novou funkci, která vyvolá tyto funkce v pořadí, pokaždé, když předá výstup jednoho do dalšího.
Podívejte se na tento příklad:
FGH = Sequential (F:G:H)
y = FGH (x)
Tady je dvojtečka (:) syntaxe BrainScriptu pro vyjádření polí. Je například (F:G:H) pole se třemi prvky, , FGa H.
Například v Pythonu by to bylo napsané jako [ F, G, H ].
Výše FGH definovaná funkce znamená totéž jako
y = H(G(F(x)))
To se označuje jako "složení funkce" a je zvlášť vhodné pro vyjádření neurálních sítí, které často mají tuto formu:
+-------+ +-------+ +-------+
x -->| F |-->| G |-->| H |--> y
+-------+ +-------+ +-------+
který je dokonale vyjádřen .Sequential (F:G:H)
Nakonec mějte na paměti, že následující výraz:
layer1 = DenseLayer{1024}
layer2 = DenseLayer{1024}
z = Sequential (layer1 : layer2) (x)
znamená něco jiného než:
layer = DenseLayer{1024}
z = Sequential (layer : layer) (x)
Ve druhé formě se stejná funkce se stejnou sdílenou sadou parametrů se použije dvakrát, zatímco v dřívějších vrstvách mají dvě vrstvy samostatné sady parametrů.
Příklad
Standardní 4skrytá síť pro předávání kanálů vrstvy, jak se používá v dřívější hluboké neurální síti, pracuje na rozpoznávání řeči:
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)