当数据量比较大是,性能比较差的机器可能会遇到很尴尬的问题,没办法把数据一次性读入内存。。。
这里有两种方法可以处理这类问题:
第一、使用流式训练的模型,如FFM,这类的模型有个好处是训练快,并且每次可以单独读取一个batch大小的数据进行训练,不需要一次性把全部数据读进来。
第二、将数据分成五份,分别训练五个模型,对最终的结果取平均值,这样就使性能差点的机器能够跑起来。
还有就是手动处理不用的变量
python会自己管理内存,实际上,对于占用很大内存的对象,并不会马上释放。举例,a=range(10000*10000),会发现内存飙升一个多G,del a 或者a=[]都不能将内存降下来。。
del 可以删除多个变量,del a,b,c,d
办法:
import gc (garbage collector)
del a
gc.collect()
import gc
a=[1,2,3,4,5,6,7]
del a
gc.collect()