首页 > 解决方案 > 如何在keras lambda层中进行矩阵乘法

问题描述

我必须将矩阵乘法计算为 Keras 层。

t1 的形状是 (None, 4, 32, 32),而 t2 的形状是 (None, 4, 32, 6)。

它适用于 tf.matmul(t1, t2) 或 K.batch_dot(t1, t2) 以获得形状为 (None, 4, 32, 6) 的结果。

但是,我未能使用下面的代码来替换 tf.matmul 或 K.batch_dot 进行乘法:

prod=Lambda(lambda x: K.batch_dot(x[0], x[1]))([t1, t2]),带有 ValueError:

ValueError:尺寸必须相等,但对于输入形状为 [?,4,32,4,32]、[?,4,32,6,1] 的 blabla(操作:'BatchMatMul'),尺寸必须是 32 和 6。

我对尺寸的变化感到很困惑。有什么解决方案可以解决这个问题吗?提前谢谢了!

标签: matrixkeraslambdamultiplication

解决方案


推荐阅读