使用 Tensordot 复制矩阵-矩阵乘法
Replicating Matrix-Matrix Multiplication using Tensordot
在PyKeops
package中,没有可用的矩阵乘法公式。相反,他们实现了类似于 numpy.tensordot
的东西。我有两个大小为 m x n
和 n x n
的矩阵 A,B
。有什么方法可以使用 numpy.tensordot
.
复制 A @ B
import numpy as np
m,n = 10, 20
A = np.random.random((m,n))
B = np.random.random((n,n))
result1 = A @ B
result2 = np.tensordot(A,B,(1,1))
print(result1 == result2)
# =======================
# array([[False, False, False, False, False, False, False, False,
# ....
好的,我找到了这个问题的答案,我们可以使用提供给 tensordot
的以下参数来解决这个问题:
import numpy as np
m,n = 10, 20
A = np.random.random((m,n))
B = np.random.random((n,n))
result1 = A @ B
result2 = np.tensordot(A,B,[(1,),(0,)])
print(result1 == result2)
# =======================
# array([[True, True, True, True, True, True, True, True, True,
# ....
在PyKeops
package中,没有可用的矩阵乘法公式。相反,他们实现了类似于 numpy.tensordot
的东西。我有两个大小为 m x n
和 n x n
的矩阵 A,B
。有什么方法可以使用 numpy.tensordot
.
A @ B
import numpy as np
m,n = 10, 20
A = np.random.random((m,n))
B = np.random.random((n,n))
result1 = A @ B
result2 = np.tensordot(A,B,(1,1))
print(result1 == result2)
# =======================
# array([[False, False, False, False, False, False, False, False,
# ....
好的,我找到了这个问题的答案,我们可以使用提供给 tensordot
的以下参数来解决这个问题:
import numpy as np
m,n = 10, 20
A = np.random.random((m,n))
B = np.random.random((n,n))
result1 = A @ B
result2 = np.tensordot(A,B,[(1,),(0,)])
print(result1 == result2)
# =======================
# array([[True, True, True, True, True, True, True, True, True,
# ....