Tensorflow 将两层不同大小的张量相乘

Tensorflow 将两层不同大小的张量相乘,tensorflow,matrix-multiplication,tensor,Tensorflow,Matrix Multiplication,Tensor,我想乘以两层,如下所示: from tensorflow.keras.layers import * import tensorflow as tf scale_, mean_ = 2., 4. a = Input(shape=(128,128), name='Input_vec') m_num = Input(shape=(4,), name='Input_num') output = Lambda(lambda x: tf.multiply(x[0], x[1]))((a, m_num[1

我想乘以两层,如下所示:

from tensorflow.keras.layers import * 
import tensorflow as tf
scale_, mean_ = 2., 4.
a = Input(shape=(128,128), name='Input_vec')
m_num = Input(shape=(4,), name='Input_num')
output = Lambda(lambda x: tf.multiply(x[0], x[1]))((a, m_num[1]))
但我总是会遇到以下错误:

ValueError: Dimensions must be equal, but are 128 and 4 for '{{node lambda_5/Mul}} = Mul[T=DT_FLOAT](Placeholder, Placeholder_1)' with input shapes: [?,128,128], [4].

您是否知道,如果不满足某些维度约束,则矩阵乘法无效?这是一个数学问题,你不能用代码覆盖它。是的,我知道。我只想将矩阵a与矩阵m_num的第一个元素相乘。我找不到如何在Tensorflow中提取该张量的元素。@Momo您的输入(
128
)是图像吗?如果是,是灰色还是rgb?@Innat是的,这是一幅图像。这里可能有一个更好的解释:我试图从图像中获取一些参数,并使用它们为下一层创建一个矩阵。在下图中,你可以看到我的大致想法。所以我想把每一组参数乘以图像。