Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Tworzy tablicę funkcji w nową funkcję, która wywołuje te funkcje po drugiej ("tworzenie funkcji do przodu").
Sequential (arrayOfFunctions)
Parametry
arrayOfFunctions: tablica funkcji BrainScript, np. skonstruowana z operatorem : : (LinearLayer{1024} : Sigmoid)
Wartość zwracana
Ta funkcja zwraca inną funkcję. Ta zwracana funkcja przyjmuje jeden argument i zwraca wynik zastosowania wszystkich podanych funkcji w sekwencji do danych wejściowych.
Opis
Sequential() to zaawansowana operacja, która pozwala kompaktowo wyrażać bardzo powszechną sytuację w sieciach neuronowych, w których dane wejściowe są przetwarzane przez propagowanie ich przez progresję warstw.
Być może znasz go z innych narzędzi sieci neuronowych.
Sequential() pobiera tablicę funkcji jako argument i zwraca nową funkcję, która wywołuje tę funkcję w kolejności, za każdym razem przekazując dane wyjściowe jednego do następnego.
Rozważ taki przykład:
FGH = Sequential (F:G:H)
y = FGH (x)
W tym miejscu dwukropek (:) to składnia języka BrainScript do wyrażania tablic. Na przykład (F:G:H) jest tablicą z trzema elementami, F, Gi H.
Na przykład w języku Python zostanie to napisane jako [ F, G, H ].
Zdefiniowana FGH powyżej funkcja oznacza to samo co
y = H(G(F(x)))
Jest to nazywane "kompozycją funkcji" i jest szczególnie wygodne w przypadku wyrażania sieci neuronowych, które często mają następującą formę:
+-------+ +-------+ +-------+
x -->| F |-->| G |-->| H |--> y
+-------+ +-------+ +-------+
który jest doskonale wyrażony przez Sequential (F:G:H).
Na koniec należy pamiętać, że następujące wyrażenie:
layer1 = DenseLayer{1024}
layer2 = DenseLayer{1024}
z = Sequential (layer1 : layer2) (x)
oznacza coś innego niż:
layer = DenseLayer{1024}
z = Sequential (layer : layer) (x)
W drugiej formie ta sama funkcja z tym samym udostępnionym zestawem parametrów jest stosowana dwa razy, podczas gdy w pierwszej warstwie mają oddzielne zestawy parametrów.
Przykład
Standardowa sieć 4-ukrytego przekazywania kanału informacyjnego używana we wcześniejszej sieci neuronowej głębokiej pracy nad rozpoznawaniem mowy:
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)