我很难理解究竟是如何einsum运作的.我看过文档和一些例子,但它似乎并不坚持.
这是我们在课堂上看到的一个例子:
C = np.einsum("ij,jk->ki", A, B)
Run Code Online (Sandbox Code Playgroud)
对于两个数组A和B
我想这会采取A^T * B,但我不确定(它正在将其中一个的转置正确吗?).任何人都可以告诉我这里发生了什么(通常在使用时einsum)?
在我学会了如何使用之后einsum,我现在正试图了解它是如何np.tensordot工作的.
但是,我有点迷失,特别是关于参数的各种可能性axes.
要理解它,因为我从未练习过张量微积分,我使用以下示例:
A = np.random.randint(2, size=(2, 3, 5))
B = np.random.randint(2, size=(3, 2, 4))
Run Code Online (Sandbox Code Playgroud)
在这种情况下,有什么不同可能np.tensordot,你会如何手动计算?