Как разделить веса среди поднабора входных функций с помощью keras - PullRequest
0 голосов
/ 31 октября 2018

В этой нейронной сети есть 9 функций ввода:

  f1,f2,f3,f4,f5,f6,f7,f8,f9

Я хочу, чтобы некоторые входные объекты, но не все, имели одинаковые веса между входным слоем и первым скрытым слоем. Все остальные слои не будут иметь общих весов.

  f1,f2,f3 should share the same weights
  f4,f5,f6 should share the same weights
  f7 should not share weights with other features
  f8 should not share weights with other features
  f9 should not share weights with other features

Я почти уверен, что мне нужны 1D свертки, но не на весь слой. Возможно, я пропустил это, но не видел этот документированный вариант использования. Есть идеи, как это сделать в Керасе?

Перефразируя вопрос, как правильно выразить одинаковое значение среди группы функций?

Функции (f1, f2, f3) имеют одинаковую важность при прогнозировании выходного класса. Функции (f4, f5, f6) также имеют одинаковое значение при прогнозировании выходного класса.

Существует три возможных прогнозируемых класса. Особенности f1 и f4 являются свидетельством выхода класса A. Функции f2 и f5 являются доказательством для вывода classB. Функции f3 и f6 являются доказательством для вывода classC.

Есть ли способ уменьшить количество параметров в сети путем совместного использования параметров среди функций одинаковой важности?

1 Ответ

0 голосов
/ 31 октября 2018

Эквивалент суммирования f1+f2+f3 и f4+f5+f6 перед плотным слоем.

Предложение слоя для суммирования:

from keras.layers import Lambda
import keras.backend as K

def sumFeatures(x):
    f1_3 = x[:,:3]
    f4_6 = x[:,3:6]

    return K.concatenate(
        [
            K.sum(f1_3, axis=-1, keepdims=True),
            K.sum(f4_6, axis=-1, keepdims=True),
            x[:,6:]
        ], axis=-1)

Последовательная модель:

model.add(Lambda(sumFeatures))

Функциональная модель:

outputTensor = Lambda(sumFeatures)(inputTensor)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...