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

时间:2018-07-20 12:51:19

标签: python keras numpy-broadcasting

矩阵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)将是a,而xin[1]将是z

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

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

  

InvalidArgumentError(请参阅上面的回溯):不兼容的形状:[4,3]与[4]

1 个答案:

答案 0 :(得分:1)

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

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