【发布时间】:2022-01-05 04:35:54
【问题描述】:
我有两个大小为 (16, 8, 400) 的矩阵 A,大小为 B (16, 50, 400) 的矩阵;其中 16 是批量大小。
现在我需要做的是:
对于 A 中的每一批次,我想计算单批次 A 中每一行的内积与单批次 B 中的每一行,然后得到最大内积值。换句话说,对于每个批次,我在左侧 (A) 有一个 (8, 400) 矩阵,在右侧 (B) 有一个 (50, 400) 矩阵。现在对于 A 中的每一行 (8 * 400),我想计算该行与 B 中的每一行 (1 * 400) 的内积,并得到最大内积。因此,内积运算将产生一个 (8 * 1) 大小的向量,然后得到 8 个值的最大值。为每个批次完成它会产生 (16, 50, 1) 大小的矩阵,这是我输出的首选维度。
数学公式如图 enter image description here
我该怎么做呢?我不想使用 for 循环,因为那样效率低下。出于同样的原因,我也不想使用重复方法。
【问题讨论】: