Последовательные
Создает массив функций в новую функцию, которая вызывает эти функции друг за другом ("переадресация композиции функций").
Sequential (arrayOfFunctions)
Параметры
arrayOfFunctions
: массив функций BrainScript, например созданный с :
помощью оператора: (LinearLayer{1024} : Sigmoid)
Возвращаемое значение
Эта функция возвращает другую функцию. Возвращаемая функция принимает один аргумент и возвращает результат применения всех заданных функций в последовательности к входным данным.
Описание
Sequential()
— это мощная операция, которая позволяет компактно выразить очень распространенную ситуацию в нейронных сетях, где входные данные обрабатываются путем распространения его через прогрессирование слоев.
Вы можете ознакомиться с ним из других наборов средств нейронной сети.
Sequential()
принимает массив функций в качестве аргумента и возвращает новую функцию, которая вызывает эти функции по порядку, каждый раз при передаче выходных данных одного в следующий.
Рассмотрим следующий пример.
FGH = Sequential (F:G:H)
y = FGH (x)
Здесь двоеточие (:
) — это синтаксис BrainScript для выражения массивов. Например, (F:G:H)
это массив с тремя элементами, F
G
и 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)