首页 > 解决方案 > Tensorflow 将 3D 张量乘以 2D 矩阵

问题描述

我正在尝试将 3D 张量乘以 2D 矩阵,但具有一个未知维度。我在这里检查了所有关于此的帖子,但没有我找不到我想要的东西。

我有这些参数:

T - 形状 (M,N)

L - 形状 (?,M,M)

F - 形状 (?, N)

我想用输出形状(?,M)做乘法 L * T * F。

我试过扩大尺寸等。

不幸的是,我总是丢失 ? 维。

感谢您的任何建议。

标签: pythontensorflow

解决方案


你可以这样实现。

L --> [?, M, M]
T --> [M, N]
tensordot(L,T) axes [[2], [0]] --> [?,M, N]
F --> [?, N] --> expand axis --> [?, N, 1]
matmul [?, M, N], [?, N, 1] --> [?, M, 1] --> squeeze --> [?, M]

放在一起:

tf.squeeze(tf.matmul(tf.tensordot(L,T, axes=[[2],[0]]),F[...,None]))

推荐阅读