2016-10-12 2 views
0

Для моей работы мне нужно создать слой с единственным весом, который будет умножать данные в текущем слое на определенное значение. Есть ли способ сделать это?Keras Custom Scaling Layer

Или измените слой слияния, который сможет сделать средневзвешенное значение входных уровней. Благодаря

+0

Принимали ли вы посмотрите на Слоты Keras lambda, они могут делать то, что вы хотите легко. – 7VoltCrayon

+0

К сожалению, у них есть только фиксированный множитель (как я знаю) и не могу хранить в них какие-либо параметры – DeWitt

ответ

1

Попробуйте Lambda слой

model.add(Lambda(lambda x: x *MyValue)) 

https://keras.io/layers/core/#lambda

+0

MyValue не будет обучен на вашем пути, мне нужно сделать его адаптивным – DeWitt

+0

Какая функция применяется для вашего слоя слияния? – user375348

+0

Он должен применять f (Входы) = Wi * input1 + W1 * input2 + ..... – DeWitt

1

Расширение ответ @ user375348 в вы можете создать изученную переменную и использовать его в пределах Lambda:

initial_value = 1 
learned = tf.Variable(initial_value, name='learned_scalar') 
Lambda(lambda x: x * learned)