在python中实现此公式的更快方法



nF是维度为m * l * l的三维矩阵,其中m=5,l=174。n由乘以Fi-Fj的范数2的平方给出。这里的公式
我当前的蛮力实现是

for k in range(0,m):
for i in range(0,l):
for j in range(0,l):
dist = gamma*(np.linalg.norm(F[0][i] - F[0][j]))
m3.append(dist)
m2.append(m3)
m1.append(m2)

但是我的程序崩溃了。有没有一种优化的方法来计算它?

现在你的操作是使用3个嵌套的缓慢的python风格循环完成的。使用Numpy的强大功能,沿着倒数第一个轴广播并对操作进行矢量化:

n = gamma * np.sum((F[:,np.newaxis,:,:] - F[:,:,np.newaxis,:])**2, axis=-1)

相关内容

  • 没有找到相关文章

最新更新