#machine-learning #keras #deep-learning #keras-layer #tf.keras
#машинное обучение #keras #глубокое обучение #keras-layer #tf.keras
Вопрос:
В Keras (или глубоком обучении в целом), в чем разница между архитектурой a stacking
и a non-stacking
и может ли кто-нибудь дать простую иллюстрацию non-stacking
архитектуры?
Существует довольно много примеров и руководств, показывающих, как складывать слои в keras, но на самом деле нет ничего о том, что является противоположностью стекирования.
Ответ №1:
Глубокие нейронные сети по определению представляют собой стеки нейронных сетей (обычно называемые просто слоями). Вы можете думать об этом как о серии операций; блок-схема. Например, в сетях обнаружения объектов для извлечения региональных объектов из изображений используются ряды слоев свертки (называемые пирамидами объектов). Однако, как и в блок-схеме, вы можете создавать ветви и перемещать данные по своему усмотрению. Рассмотрим следующие фрагменты кода:
Просто стек.
input_layer = InputLayer(input_shape=(256,256,3))
x = Dense(666)(input_layer)
x = Dense(666)(x)
output_layer = Dense(1, activation='softmax')(x)
Кое-что более интересное.
input_layer = Inputlayer(input_shape=(256,256,3))
x = Dense(666)(input_layer)
x_left = Dense(666)(x) # gets inputs from x
x_left = Dense(666)(x_left)
x_right = Dense(666)(x)
x_right = Dense(666)(x_right)
x = concatenate([x_left,x_right],axis=-1)
x = Dense(666)(x)
output_layer = Dense(1,activation='softmax')(x)
Это вообще отвечает на ваш вопрос?
Кроме того, может помочь этот рисунок; это базовый макет сети пирамиды функций, который я нашел в Google, который неплохо справляется с отображением: