无法在keras中划分矩阵和向量

Unable to divide a matrix and vector in keras

矩阵 a 的形状为 (4,3),矩阵 z 的形状为 (4,)。 我的意图是我想将 a 中的每 3 个暗向量与 z 中的标量相除。 考虑以下示例:

输入:

a = [[1,1,1],
 [2,2,2],
 [2,2,2],
 [5,5,5]]

z = [10,10,10,5]

预期输出:

[[.1,.1,.1],
 [.2,.2,.2],
 [.2,.2,.2],
 [1,1,1]]

下面是我尝试使用 keras Lambda 层执行相同操作,其中 K.sum(xin[0], axis=1)axin[1]z

 x = Lambda(lambda xin: K.sum(xin[0], axis=1) / xin[1], name='mean')([x1,x2])

但是当我 运行 这段代码时,出现以下错误:

InvalidArgumentError (see above for traceback): Incompatible shapes: [4,3] vs. [4]

x = Lambda(
    lambda xin: K.sum(xin[0], axis=1) / K.expand_dims(xin[1]), name='mean'
)([x1,x2])

函数 expand_dims 会将 (4,) 变成 (4,1),使两种形状兼容。