Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
即使在每次迭代结束时删除所有变量,python for循环中也会出现内存泄漏_Python_For Loop_Memory Leaks_Cupy - Fatal编程技术网

即使在每次迭代结束时删除所有变量,python for循环中也会出现内存泄漏

即使在每次迭代结束时删除所有变量,python for循环中也会出现内存泄漏,python,for-loop,memory-leaks,cupy,Python,For Loop,Memory Leaks,Cupy,以下两个循环将使用内存,直到用完为止,但我不知道为什么。我在每次迭代结束时删除所有创建的变量,但仍然会泄漏 !pip3 install cupy-cuda101 import cupy as cp import numpy as np from sklearn.preprocessing import PolynomialFeatures xtrain = cp.asnumpy(cp.random.uniform(-1,1,size = (150000,50))) for i in rang

以下两个循环将使用内存,直到用完为止,但我不知道为什么。我在每次迭代结束时删除所有创建的变量,但仍然会泄漏

!pip3 install cupy-cuda101
import cupy as cp
import numpy as np
from sklearn.preprocessing import PolynomialFeatures

xtrain = cp.asnumpy(cp.random.uniform(-1,1,size = (150000,50)))

for i in range(0,1000):
   weights = cp.random.uniform(-1,1,size = (1275,1000))
   
   for chunk in range(0,xtrain.shape[0],5000):
      xchunk = xtrain[chunk:chunk+5000,:]
      poly=PolynomialFeatures(interaction_only = True, include_bias = False)
      xchunk = cp.array(poly.fit_transform(xchunk))
      ranks = cp.matmul(xchunk,weights)
      del ranks, xchunk, poly
   del weights

xtrain也是浮点数据,介于-1和1之间。

这些行在每次迭代结束时插入,将其修复:

    cp.get_default_memory_pool().free_all_blocks()
    cp.get_default_pinned_memory_pool().free_all_blocks()

你所有的
del
语句都是毫无意义的,因为这些变量在每次迭代中都会被重新分配。确切地说,那么它如何在每次迭代后使用越来越多的内存呢?不知道。你必须提供一份报告,希望任何人都能诊断像塔托克这样的东西,现在它是可重复的。你能详细说明一下为什么你认为有“泄漏”吗?还要注意,默认情况下CuPy使用内存池: