Я не знаю название того, что я ищу, но я хочу сделать слой в кератах, где каждый вход умножается на свой собственный, независимый вес и смещение. Например. если бы было 10 входов, было бы 10 весов и 10 смещений, и каждый вход умножался бы на его вес и суммировался с его смещением, чтобы получить 10 выходов.
Например, вот простая плотная сеть:
from keras.layers import Input, Dense
from keras.models import Model
N = 10
input = Input((N,))
output = Dense(N)(input)
model = Model(input, output)
model.summary()
Как видите, эта модель имеет 110 параметров, поскольку она полностью подключена:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_2 (InputLayer) (None, 10) 0
_________________________________________________________________
dense_2 (Dense) (None, 10) 110
=================================================================
Total params: 110
Trainable params: 110
Non-trainable params: 0
_________________________________________________________________
Я хочу заменить output = Dense(N)(input)
на что-то вроде output = SinglyConnected()(input)
, чтобы у модели теперь было 20 параметров: 10 весов и 10 смещений.