R_Language 板


LINE

※ 引述《lianhua (莲华)》之铭言: : [问题类型]: : 程式谘询 : [软体熟悉度]: : 使用者 : [问题叙述]: : 因为我需要跑大量的贝氏模拟,大回圈次数500次 : 大回圈里面的小回圈20000次 : 每一次小回圈都需要生成一个5XM (M大概100左右) 的矩阵 : 但是我的电脑大回圈大概都跑个200次左右就会跳出 : 错误: 无法配置大小为 526.2 Mb 的向量 : 这种讯息 请问是我的电脑记忆体不足,还是语法太拙劣? 理论上演算法需要的记忆体,都是可以事先评估出来的。 我先假设你回圈中生成的矩阵都要保留在记忆体。 一个numeric value需要 8 bytes 的记忆体空间, 这样的话,一个小回圈需要 500 * 8 bytes 的空间,大约 4 kb。 一个大回圈要20000 次小回圈,所以就是 80000 kb ,大约是 80 mb。 500次大回圈需要 40000 mb, 大约是 40 Gb 的记忆体。 你的电脑有这麽多记忆体嘛? 或是你需要保留每次生成的矩阵嘛?有没有确实清理掉? 另外R 在记忆体的使用上还有另外一个问题: (请看下面的说明) : [程式范例]: : 程式很长,所以仅贴部分 : N = 500 : L0 = numeric() : L1 = numeric() : L2 = numeric() : Alpha1 = numeric() : Alpha2 = numeric() : for(k in 1:N){ : set.seed(k) : . : . : . : 这里是我怀疑出错的部分,因为如果我不是生成随机矩阵的话 : 就不会有这个问题 : iter = 20000 : repeat{ : ### step 1 fill up Z ### : g1 = function(x){ : ((l1+l0)*c1*(x^(c1-1)))/((l1+l0)*c1*(x^(c1-1))+l2*c2*(x^(c2-1))) : } : g2 = function(x){ : (l1*c1*(x^(c1-1)))/(l1*c1*(x^(c1-1))+(l2+l0)*c2*(x^(c2-1))) : } : Z1 = matrix(,ncol=2,nrow=length(t1)) : Z2 = matrix(,ncol=2,nrow=length(t2)) : for(i in 1:length(t1)){ : Z1[i,] = rmultinom(1,1,c(g1(t1[i]),(1-g1(t1[i])))) : } : for(i in 1:length(t2)){ : Z2[i,] = rmultinom(1,1,c(g2(t2[i]),(1-g2(t2[i])))) : } : } 使用 Z1[i,] = xxx 这种语法时,R 会复制记忆体,也就是你可能需要Z1两倍的记忆体, 所以如果Z1很大的话,也是会出问题。 : 想请各位先进为我解答,感谢~ 你可以把你的需求写的更清楚,这样我还可以针对你的问题提供建议喔。 -- 欢迎到ptt R_Language版分享R 的相关知识 欢迎加入 Taiwan R User Group : http://www.facebook.com/Tw.R.User 聚会报名 http://www.meetup.com/Taiwan-R/ 聚会影片 https://www.youtube.com/user/TWuseRGroup --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.224.201.62 ※ 编辑: Wush978 来自: 61.224.201.62 (06/22 21:39)
1F:推 lin15:不知道W大对R处理大型资料库(记忆体吃不下)有没有甚麽建议? 06/22 23:20
2F:→ clickhere:不要只用一台机器处理. 06/23 01:32
3F:推 lianhua:感谢大大解答,那我要怎麽确实清理记忆体呢? 06/23 07:34
4F:→ lianhua:我生成的矩阵只有在一次的小回圈里有用下一次就是新的了 06/23 07:35
5F:推 lianhua:就是一个大回圈20000个矩阵只有在各自的回圈里会用到。 06/23 07:38
6F:→ celestialgod:你就把生成的矩阵rm掉 再加个gc()吧 06/23 07:47
7F:→ celestialgod:在大回圈的最後 06/23 07:48
8F:→ Wush978:通常名字盖掉会自己gc 耶,会不会问题不在这? :Q 06/23 10:45
9F:→ Wush978:你可以用object.size来看物件所占用的记忆体 06/23 10:45
10F:→ celestialgod:好像是rm才不会清记忆体...原PO可能需要PO程式 06/23 14:03
11F:→ celestialgod:才知道要怎样修改 06/23 14:03







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP