将具有1个输出的图层乘以具有多个输出的图层

时间:2019-04-19 12:39:10

标签: tensorflow keras

我正在尝试使神经网络将两个输入张量相乘(在将它们输入到网络中之前,我无法这样做)。 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 个答案:

答案 0 :(得分:1)

使用支持广播的tf.multiply()(或tf.math.multiply()

output = Lambda(lambda x: tf.multiply(x[0], x[1]))((a, mulNum))