【发布时间】:2017-02-10 20:20:15
【问题描述】:
我得到两个 3d 矩阵 A (32x3x3) 和 B(32x3x3),我想得到尺寸为 32x3x3 的矩阵 C。计算可以使用如下循环来完成:
a = numpy.random.rand(32, 3, 3)
b = numpy.random.rand(32, 3, 3)
c = numpy.random.rand(32, 3, 3)
for i in range(32):
c[i] = numpy.dot(a[i], b[i])
我相信必须有一个更有效的单线解决方案来解决这个问题。谁能帮忙,谢谢。
【问题讨论】:
-
你是指元素乘法,还是矩阵乘法 layers?
-
为什么投反对票?这个问题是明智而明确的,IMO。
-
@AlvaroP,因为 OP 使用的是
dot,看起来像层乘是意图。我相信一些智能的 reshape/multiply/reshape-back 可以达到预期的效果,但不太确定。 -
@heltonbiker 你可能是对的。也许
tensordot?docs.scipy.org/doc/numpy/reference/generated/… -
@AlvaroP 亲测后
tensordot好像不行...
标签: python numpy matrix multidimensional-array matrix-multiplication