我正在寫一個模塊來訓練一個大型數據集上的ML模型——它包括0.6米的數據點,每個數據點的維度都是0.15米。我在加載數據集本身時遇到了問題。(全是numpy數組)
下面是一個代碼片段(它復制了實際代碼的主要行為):import numpy
import psutil
FV_length = 150000
X_List = []
Y_List = []
for i in range(0,600000):
feature_vector = numpy.zeros((FV_length),dtype=numpy.int)
# using db data, mark the features to activated
class_label = 0
X_List.append(feature_vector)
Y_List.append(class_label)
if (i%100 == 0):
print(i)
print("Virtual mem %s" %(psutil.virtual_memory().percent))
print("CPU usage %s" %psutil.cpu_percent())
X_Data = np.asarray(X_List)
Y_Data = np.asarray(Y_List)
這些代碼會導致內存分配不斷增加,直到被殺死。有沒有辦法減少不斷增加的內存分配?在
我試過用gc.收集()但它始終返回0。我把variables=None顯式地設置為,不再有用。在