Я новичок в Керасе. Я столкнулся с простой проблемой, но долго искал и не могу найти, как с ней справиться.
Вкратце, у меня есть 2 вектора: [a1, a2, a3]
& [b1, b2, b3]
, и я хочу объединить их, указав их веса, используя следующую формулу для получения нового вектора: [y1, y2, y3]
. Тогда как реализовать это с Keras?
формула
Моя ситуация такова: я строю 2 модели по отдельности, и у каждой есть свой прогнозный результат (то есть 3 значения, представляющие прогнозируемое значение 3 категорий). Выход первой модели [a1, a2, a3]
, а для второй модели [b1, b2, b3]
.
Теперь я хочу объединить эти 2 выхода, чтобы получить новые результаты прогнозирования [y1, y2, y3]
, поэтому y1
- это комбинация a1
& b1
, и модель должна узнать вес самостоятельно. Это означает, что y1 = w1*a1 + w4*b1
, w1
и w4
- это веса, которые нужно тренировать. Точно так же, y2 = w2*a2 + w5*b2
, y3 = w3*a3 + w6*b3
, поэтому у меня есть 6 гирь для тренировки. Это похоже на поэлементное умножение, но умножаемые числа - это веса, которые нужно обучить. Я попробовал следующие коды, но обнаружил, что это не то, что я хочу.
# output_a & output_b are size (3,1)
merge = concatenate([output_a, output_b], axis=2)
# merge is (3,2)
output_y = Dense(1, use_bias=False)(merge)
# output_y is (3,1)
Я считаю, что в слое Плотность число обучающих параметров равно 2. Я думаю, это означает, что у него просто 2 веса (то есть w1=w2=w3
и w4=w5=w6
). Я не уверен, как это исправить. Спасибо всем за помощь!
Редактировать: Кто-то сказал мне, что, возможно, я должен определить слой, который я хочу сам. Так нет ли какой-либо функции, которую я могу использовать для достижения этой цели?
Редактировать: я добавляю рисунок ниже и думаю, что он может описать мой вопрос.
цифра, которая описывает мой вопрос