无法在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)
为 a
,xin[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)
,使两种形状兼容。
矩阵 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 (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)
,使两种形状兼容。