Как слои CNN добавляют свои значения смещения?

Мне нужно написать мою модель CNN как функцию Theano с уже установленными Keras весами (Tensorflow в качестве бэкэнда), но я не уверен, как добавить значения смещения, связанные с каждым слоем.

Это решение Как я могу получить 1D свертку в theano прекрасно работает, чтобы написать один слой как функцию Theano, но мне нужно сложить свои веса с уклонами от каждого слоя

Упрощенная версия моего кода:

model = Sequential([

    InputLayer(batch_input_shape=(None,100,1)),
    Convolution1D(nb_filter=16, filter_length=8, activation='relu', border_mode='same', init='he_normal', input_shape=(None,100,1)),
    Convolution1D(nb_filter=32, filter_length=8, activation='relu', border_mode='same', init='he_normal'), 
    MaxPooling1D(pool_length=4),
    Flatten(),
    Dense(output_dim=32, activation='relu', init='he_normal'),
    Dense(output_dim=1, input_dim=32, activation='linear'),
])

Как добавить вес смещения к слою CNN?

Например, веса моего первого слоя имеют размеры: (8, 1, 1, 16)

С уклоном с размерами: (16,)

Что достаточно легко соединить вместе, чтобы получить размеры: (9, 1, 1, 16)

но для следующего слоя у меня есть размеры: (8, 1, 16, 32)

с уклоном с размерами: (32,)

Как я могу объединить это в одну весовую матрицу? Поместить в функцию Theano T.signal.conv.conv2d?

0 ответов

Другие вопросы по тегам