Как насчет создания двух сверточных слоев, которые получают одинаковый вход и (почти) одинаковые параметры?Таким образом, один из них является обучаемым произвольным весом при инициализации, а другой слой не обучаем с помощью фильтров Габора.
Затем можно объединить выходные данные двух слоев таким образом, чтобы это выглядело как выходнойиз одной сверточной сети.
Вот пример для демонстрации (необходимо использовать Функциональный API Keras ):
n_filters = 32
my_input = Input(shape=...)
conv_freezed = Conv2D(n_filters/2, (3,3), ...)
conv_trainable = Conv2D(n_filters/2, (3,3), ...)
conv_freezed_out = conv_freezed(my_input)
conv_trainable_out = conv_trainable(my_input)
conv_out = concatenate([conv_freezed_out, conv_trainable_out])
# set weights and freeze the layer
conv_freezed.set_weights(...)
conv_freezed.trainable = False