numpy处理大数据造成的MemoryError问题

博客围绕使用siamese网络构建pair时遇到的问题展开。构建三维list处理时占120G内存,直接转np.array报错,通过拆解为pair left、right和label处理,并注意释放内存。此外,使用np.save()处理pair right报错,可能因TEMPDIR空间不足,调整del顺序后再尝试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、问题。在使用siamese网络构建pair时,大约生成 3亿*2*250 的三维list,处理list期间大约占120G内存,如果直接np.array()会报memoryerror,服务器内存为380G,swap空间为32G,OS为Ubuntu16.04,python为2.7.11,numpy为1.13.1。

2、解决方案。拆解pair为pair left和pair right。

     pair left:3亿* 250的二维list,约占60G内存,转为np期间约占300G内存,存储npy大约30G,期间需要注意del list和np用于释放内存。

     pair right:3亿* 250的二维list,约占60G内存,转为np期间约占300G内存,存储npy大约30G,期间需要注意del list和np用于释放内存。

     pair label:3亿* 1的二维list,处理流程同上,相对较小。

3、参考。

     python下numpy数组的最大取值范围?这里max其实并非上限。

     有关 list 内存释放的小技巧

     使用gc、objgraph干掉python内存泄露与循环引用!

4、问题。使用np.save()处理pair right报错,IOError: 74795622750 requested and 8801504232 written,

  但pair left可执行。

5、解决方案。可能由于storage TEMPDIR空间不够的原因。调整del顺序之后,继续尝试运行。

6、参考。

     IOError: 74795622750 requested and 8801504232 written

     Numpy中数据的常用的保存与读取方法

                                                                         鬼切

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值