#tensorflow #keras
#tensorflow #keras
Вопрос:
Я пытаюсь заставить нейронную сеть умножить два входных тензора (я не могу этого сделать до того, как передам их в сеть). multiply
Функция Кераса может обрабатывать только два тензора одной и той же размерности. Есть что-то вроде:
scale_, mean_ = 2., 4.
a = Input(shape=(300,), name='Input_vec')
m_num = Input(shape=(1,), name='Input_num')
mulNum = Lambda(lambda x: K.exp(x * scale_ mean_))(m_num)
output = multiply([mulNum, a]) # tensors not same shape
как я могу выполнить умножение двух входных данных, где один является просто скаляром?
Ответ №1:
Используйте tf.multiply()
(или tf.math.multiply()
), поддерживающий широковещательную передачу:
output = Lambda(lambda x: tf.multiply(x[0], x[1]))((a, mulNum))
Комментарии:
1. Вы должны ввести входные данные для лямбда-слоя, иначе появится ошибка.