解决numpy.core._exceptions.MemoryError问题办法

做机器学习数据预处理的时候遇到 numpy.core._exceptions.MemoryError: Unable to allocate array with shape (150000, 20, 1600) and data type float64. 主要是因为内存大小不足导致的问题,还有出现OSError: [Errno 12] Cannot allocate memory这个错误,也是由于内存不足引起的。如果是运行在linux系统下,可以用cat /proc/meminfo 指令查看可使用内存是多少。同时在程序运行期间,可以使用top  -u user(程序运行时的用户名)来监测内存使用情况。

解决上述2个内存问题:

    1. 如果可以继续分配内存,增加内存空间的大小。监测程序运行过程使用的内存峰值,确定需要增加多少内存空间。如果没有可以分配的内存可以直接尝试步骤2的方法,但不确保可以完全解决问题。

    2. 如果增加内存空间之后仍有内存问题,使用cat /proc/sys/vm/overcommit_memory 指令,如果返回结果是0,可以作为root用户,使用echo 1 > /proc/sys/vm/overcommit_memory 将其值改为1. 

如果在完成步骤1,2 之后,仍有内存问题,可能需要增加内存条,或者使用GPU(之后会尝试是否可以解决上述问题)。如果哪位小伙伴有更好的解决办法,欢迎留言交流。谢谢

如果觉得本文有帮助,请点个赞吧,如果喜欢我的文章,请点击关注,谢谢!!!

你可能感兴趣的:(解决numpy.core._exceptions.MemoryError问题办法)