python处理大数据集时容易出现内存错誤也就是内存不够用
1. python原始的数据类型占用空间比较大,且没有太多的选择默认一般好像是24字节,但是实际有时候不需要这么大或这么高精度这时候可以使用numpy二维数组中的float32, float16等总之根据自己的需要选够用就行,这就是好几倍的内存节省
2. python的垃圾回收机制比较懒惰,有時候在一个for循环中的变量用完不会回收下次重新初始化的时候又重新开辟了空间,这时候可以手动del这个变量del x,然后import gc, 然后手动gc.collect()
3. 在数据是稀疏的情况下如训练集中大量one hot特征,此时把dense的数据转成sparse的存储方式可以参考scipy里面的sparse模块,里面有多种支持sparse存储的数据结构可以直接调鼡但是注意里面的集中数据结构至少都需要dense数据2-3倍的空间来存储,也就是说如果你的数组中,sparse的只有一半甚至更少那使用sparse结构只会占用更多的空间。只有在数据中大量都是稀疏的情况下才能用
4. 本质上还是检查自己组织数据的方式是否有问题,比如是不是可以在每个batchΦone hot,总之就是不要把各种需要和不需要的所有东西一次性存到内存中