小编Avn*_*esh的帖子

巨大数据集的Python双重自由错误

我在Python中有一个非常简单的脚本,但由于某种原因,在运行大量数据时出现以下错误:

*** glibc detected *** python: double free or corruption (out): 0x00002af5a00cc010 ***
Run Code Online (Sandbox Code Playgroud)

当我试图释放已经释放的内存时,我习惯于在C或C++中出现这些错误.但是,通过我对Python的理解(特别是我编写代码的方式),我真的不明白为什么会这样.

这是代码:

#!/usr/bin/python -tt                                                                                                                                                                                                                         

import sys, commands, string
import numpy as np
import scipy.io as io
from time import clock

W = io.loadmat(sys.argv[1])['W']
size = W.shape[0]
numlabels = int(sys.argv[2])
Q = np.zeros((size, numlabels), dtype=np.double)
P = np.zeros((size, numlabels), dtype=np.double)
Q += 1.0 / Q.shape[1]
nu = 0.001
mu = 0.01
start = clock()
mat = -nu + mu*(W*(np.log(Q)-1))
end = clock()
print >> sys.stderr, "Time taken to …
Run Code Online (Sandbox Code Playgroud)

python memory numpy scipy

31
推荐指数
1
解决办法
2万
查看次数

标签 统计

memory ×1

numpy ×1

python ×1

scipy ×1