Как слои 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?