gpt4 book ai didi

python - 当输入是许多相同的数组时,使 np.einsum 更快? (或任何其他更快的方法)

转载 作者:行者123 更新时间:2023-12-03 14:37:51 26 4
gpt4 key购买 nike

我有一段代码类型:

nnt = np.real(np.einsum('xa,xb,yc,yd,abcde->exy',evec,evec,evec,evec,quartic))
哪里 evec是(比如说)一个 L x L np.float32数组,和 quartic是 L x L x L x L x T np.complex64大批。
我发现这个例程相当慢。
我以为既然所有 evec是相同的,可能有更快的方法吗?
提前致谢。

最佳答案

首先,您可以重用第一个计算:

evec2 = np.real(np.einsum('xa,xb->xab',evec,evec))
nnt = np.real(np.einsum('xab,ycd,abcde->exy',evec2,evec2,quartic))
如果您不关心内存而只需要性能:
evec2 = np.real(np.einsum('xa,xb->xab',evec,evec))
nnt = np.real(np.einsum('xab,ycd,abcde->exy',evec2,evec2,quartic,optimize=True))

关于python - 当输入是许多相同的数组时,使 np.einsum 更快? (或任何其他更快的方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62807203/

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