gpt4 book ai didi

python - 将 einsum 计算转换为要在 Theano 中使用的点积

转载 作者:太空狗 更新时间:2023-10-30 02:29:52 26 4
gpt4 key购买 nike

我最近才了解 np.einsum 并很快就对它上瘾了。但似乎 theano 没有等效的功能,所以我需要以某种方式将我的 numpy 代码转换为 theano。如何在 theano 中编写以下计算?

IX=np.einsum('ijk,lj->ilk',p1,KX)

最佳答案

你只需要重新排列你的坐标轴就可以让它工作:

>>> import numpy as np
>>> a = np.random.rand(3, 4, 5)
>>> b = np.random.rand(5, 6)
>>> np.allclose(np.einsum('ikj,jl->ikl', a, b), np.dot(a, b))

考虑到这一点:

>>> a = np.random.rand(3, 5, 4)
>>> b = np.random.rand(6, 5)
>>> out_ein = np.einsum('ijk,lj->ilk', a, b)
>>> out_dot = np.transpose(np.dot(np.transpose(a, (0, 2, 1)),
... np.transpose(b, (1, 0))),
... (0, 2, 1))
>>> np.allclose(out_ein, out_dot)

关于python - 将 einsum 计算转换为要在 Theano 中使用的点积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30305891/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com