作者f496328mm (123)
看板R_Language
标题[问题] R 记忆体用量
时间Fri Mar 24 22:47:54 2017
文章分类提示:
- 问题: 当你想要问问题时,请使用这个类别。
建议先利用 google 爬文,如输入
「想查询的关键字 site:webptt.com/cn.aspx?n=/*/R_Language/」。
[问题类型]:
程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
[软体熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
http://imgur.com/4UN3EJk
如图
我跑的物件总共也才不到6gb
可是看系统监控 却已经有17.6gb在背景了
到底是为什麽阿?? 而且我也执行过gc()了
我原本打算转换所有的data , 目前因为ram的关系
只能转1/4部份 有点麻烦 有什麽办法可以解决?
另外
如果我改到 python 去做转换 会比较省ram吗?
谢谢
ps: 我是把图片转换成 pixel
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.42.103.52
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1490366877.A.D7F.html
※ 编辑: f496328mm (114.42.103.52), 03/24/2017 22:48:47
1F:→ andrew43: 在R上承载资料的是什麽物件或类别?整数类矩阵吗? 03/24 22:50
2F:→ andrew43: 省不省记忆体应该还是和实做过程比较有关系。 03/24 22:51
3F:→ andrew43: 可以的话,提供一个可重复的虚假例子。 03/24 22:51
举例来说 一张图片 480*640*3 这样
因为我想到python做vgg16 所以先用R整理成 224*224*3
但只我转换5000张图片後 记忆体就快爆了
※ 编辑: f496328mm (114.42.103.52), 03/24/2017 22:57:00
4F:→ celestialgod: 你怎麽写? 03/24 23:02
5F:→ andrew43: 如果是回圈,每次处理完把物件存RData再rm()掉。 03/24 23:02
6F:→ andrew43: 把资料输出成实体档案,之後再喂给python 03/24 23:04
7F:→ andrew43: R的整数似乎都是32bit,此时是比较浪费,但应该有办法处 03/24 23:06
8F:→ andrew43: 理才对。 03/24 23:07
我先抓好每个档案的位置 然後取5000个出来
之後一次转一张图片 最後整理成一个data.table出来这样
用sapply这样去做
python的整数是不是占比较少ram?
因为我train有2万张图片 但是test有将近8万张图片QQ
※ 编辑: f496328mm (42.78.113.162), 03/24/2017 23:27:05
9F:→ celestialgod: 重点是转的过程... 03/24 23:40
10F:→ celestialgod: 你应该是在转的过程过了什麽操作才会用到那麽多RAM 03/24 23:40
11F:→ celestialgod: 你给这样的资讯,我也没办法给什麽建议 03/24 23:41
这是function
https://gist.github.com/f496328mm/a342cb39e8ae3b84f01be29a46bb81da
这是main
https://gist.github.com/f496328mm/44116adf79356f01e761cfe72627d213
※ 编辑: f496328mm (114.42.103.52), 03/25/2017 00:28:24
12F:→ celestialgod: train.variable=cbind( img.name , train.variable) 03/25 00:59
13F:→ celestialgod: 瓶颈在这行 03/25 00:59
14F:→ celestialgod: 还有 colnames(train.variable) 03/25 01:00
15F:→ celestialgod: data.table不是这样用的... 你这样会做deep copy... 03/25 01:00
ok 感谢 我晚点改改看
※ 编辑: f496328mm (114.42.103.52), 03/25/2017 01:09:52