这几天训练模型运行代码的时候,老是提示我说:Error: cannot allocate vector of size 88.1 Mb,只知道分配空间不足。 下面是查资料看到的一些回答: 一、这个是R的特点,有几个解决方法: 二、有的时候加内存条也不能解决大数据量多的需求,采用parallel计算策略吧,如果数据一次性读入也不行,可配合filematrix包,分次从硬盘读数据,不过这会慢很多。 三、R里面找到那个参数,有个地方是改最大分配内存的,在Preference之类的地方。 四、下载一个Package叫bigmemory。里面重新为大的数据集构建了类,在处理大数据集的功能上(包括几十GB)基本上是最前沿的。 链接为cran./web/packages/bigmemory/ 五、bigmemory包是可以的。另外还提供了另外两种选择,mapReduce和RHIPE(使用Hadoop),也可以处理大数据集。 六、大神指导(http://bbs./thread-3682816-1-1.html),cannot allocate vector就是典型的数据太大读不了 方法有三 memory.size(F)查看已使用内存 memory.limit()查看内存上限 object.size()看每个变量占多大内存。 如果现在的内存上限不够用,可以通过memory.limit(newLimit)更改到一个新的上限。注意,在32位的R中,封顶上限为4G,无法在一个程序上使用超过4G (数位上限)。这种时候,可以考虑使用64位的版本。 详细可参考此篇,非常棒https://blog.csdn.net/sinat_26917383/article/details/51114265 3 R 高性能计算和并行计算 http://cran./web/views/HighPerformanceComputing.html
如果遇到这个问题,大家可以对应试试解决方案,方法还不错哦~ |
|