Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Создает массив функций в новую функцию, которая вызывает эти функции друг за другом ("переадресация композиции функций").
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)