gpt4 book ai didi

python - 在 python 中有效计算三阶张量

转载 作者:太空宇宙 更新时间:2023-11-03 14:23:06 27 4
gpt4 key购买 nike

如果x表示d维列向量,并且e_i表示欧几里德中的第i标准基space R^d,我想在 python 中以有效的方式计算以下三阶张量:

enter image description here

这里,圆圈表示张量外积。目前我一直依赖以下效率相当低的代码:

import numpy as np
from sktensor import ktensor,dtensor

d=5
x= np.random.normal(0,1,(d,1))

z= np.zeros((d,1))
I= np.identity(d)

T1= ktensor([x,x,x])
T2= ktensor([z,z,z])
T3= ktensor([z,z,z])
T4= ktensor([z,z,z])

for j in range(d):
T2 = T2+ ktensor([I(:,j),I(:,j),x]
T3 = T3+ ktensor([I(:,j),x,I(:,j)]
T4 = T4+ ktensor([x,I(:,j),I(:,j)]

T= T1-T2-T3-T4

最佳答案

根据 OP 评论的请求,基于

numpy 的答案。未针对 sktensor

进行测试
import numpy as np
np.random.seed(42)
d = 5
x = np.random.normal(0,1, size=(d,1))
I = np.identity(d)

ans = np.outer(x, np.outer(x, x))
for i in range(d):
ans -= np.outer(I[:, i], np.outer(I[:, i], x))
ans -= np.outer(I[:, i], np.outer(x, I[:, i]))
ans -= np.outer(x, np.outer(I[:, i], I[:, i]))

关于python - 在 python 中有效计算三阶张量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47821624/

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