热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Error:cannotallocatevectorofsize88.1Mb问题

标签:tpsace应该referencebigerr无法注意hive这几天训练模型运行代码的时候,老是提示我说:Error:cannota

标签:tps   ace   应该   reference   big   err   无法   注意   hive   

  这几天训练模型运行代码的时候,老是提示我说:Error: cannot allocate vector of size 88.1 Mb,只知道分配空间不足。

 下面是查资料看到的一些回答:

一、这个是R的特点,有几个解决方法:
1.升级到R3.3.0及以上版本,对内存的管理和矩阵计算好太多。在R3.2.5上能死机的计算,在R3.3.0以上就能运行很好。
2.加载一些R语言磁盘缓存包,搜一搜吧
3.写代码的时候适当加一些清理内存的命令。
4.应该跑多线程了吧。
5.加内存作用有限。在R3.2.5上能把服务器跑死机,服务器是44核,512G内存。优化一下代码很有必要。

二、有的时候加内存条也不能解决大数据量多的需求,采用parallel计算策略吧,如果数据一次性读入也不行,可配合filematrix包,分次从硬盘读数据,不过这会慢很多。

三、R里面找到那个参数,有个地方是改最大分配内存的,在Preference之类的地方。

四、下载一个Package叫bigmemory。里面重新为大的数据集构建了类,在处理大数据集的功能上(包括几十GB)基本上是最前沿的。

      链接为cran.r-project.org/web/packages/bigmemory/

五、bigmemory包是可以的。另外还提供了另外两种选择,mapReduce和RHIPE(使用Hadoop),也可以处理大数据集。

六、大神指导(http://bbs.pinggu.org/thread-3682816-1-1.html),cannot allocate vector就是典型的数据太大读不了

方法有三
一、升级硬件
二、改进算法
三、修改操作系统分配给R的内存上限, memory.size(T)查看已分配内存 

memory.size(F)查看已使用内存  

memory.limit()查看内存上限 

object.size()看每个变量占多大内存。
memory.size()查看现在的work space的内存使用
memory.limit()查看系统规定的内存使用上限。

如果现在的内存上限不够用,可以通过memory.limit(newLimit)更改到一个新的上限。注意,在32位的R中,封顶上限为4G,无法在一个程序上使用超过4G (数位上限)。这种时候,可以考虑使用64位的版本。

 详细可参考此篇,非常棒https://blog.csdn.net/sinat_26917383/article/details/51114265

1 http://jliblog.com/archives/276

2 http://cos.name/wp-content/uploads/2011/05/01-Li-Jian-HPC.pdf

3 R 高性能计算和并行计算 http://cran.r-project.org/web/views/HighPerformanceComputing.html

  如果遇到这个问题,大家可以对应试试解决方案,方法还不错哦~

Error: cannot allocate vector of size 88.1 Mb问题

标签:tps   ace   应该   reference   big   err   无法   注意   hive   

原文地址:https://www.cnblogs.com/babyfei/p/9565143.html


推荐阅读
author-avatar
席昀2010_445_882
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有