Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.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 为什么np.unint8和np.int8会释放内存,而其他numpy格式则不会?_Python_Numpy_Garbage Collection - Fatal编程技术网

Python 为什么np.unint8和np.int8会释放内存,而其他numpy格式则不会?

Python 为什么np.unint8和np.int8会释放内存,而其他numpy格式则不会?,python,numpy,garbage-collection,Python,Numpy,Garbage Collection,我正在做一个项目,在这个项目中,我正在阅读大量的图像,我正在努力进行内存管理。我正在使用int32/float32格式读取图像(我知道默认格式应该是uint8,但我想使用其他格式进行检查,因为我将融合可能来自不同类型的不同类型的数据) 为了释放内存,我删除了我在阅读完所有图像后没有使用的重物。为此,我使用del并显式调用垃圾收集器: del object gc.collect() 这就是奇怪的事情开始的地方。如果我使用np.int32或np.float32(例如np.zeros((598598

我正在做一个项目,在这个项目中,我正在阅读大量的图像,我正在努力进行内存管理。我正在使用int32/float32格式读取图像(我知道默认格式应该是uint8,但我想使用其他格式进行检查,因为我将融合可能来自不同类型的不同类型的数据)

为了释放内存,我删除了我在阅读完所有图像后没有使用的重物。为此,我使用del并显式调用垃圾收集器:

del object
gc.collect()
这就是奇怪的事情开始的地方。如果我使用np.int32或np.float32(例如
np.zeros((598598,3),dtype=np.int32)作为数组的数据类型,内存不会释放,如下图所示:

但是,如果我使用as dtypenp.uint8或np.int8则内存确实会释放,如下图所示:

我还注意到,如果我限制正在读取的图像数量(最多8.61 GB内存),内存确实会被释放。下面的图像中可以观察到这两种情况:

为什么会发生这种情况? 提前谢谢大家