首页 > 解决方案 > 无法在keras中划分矩阵和向量

问题描述

矩阵a有形(4,3)z有形(4,)。我的意图是我想a用标量 in 划分每 3 个暗淡向量 in 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]]

下面是我尝试使用 kerasLambdaK.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(参见上文的追溯):不兼容的形状:[4,3] vs. [4]

标签: pythonkerasarray-broadcasting

解决方案


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

该功能expand_dims(4,)变为(4,1),使两种形状兼容。


推荐阅读