作者lericee (艾瑞克)
看板Python
标题[问题] python有记忆体限制吗
时间Wed Aug 15 14:49:08 2018
大家好
网路上查没查到相关的问题..
不知道是不是该在这里发问
我是用anaconda的jupyter notebook
去跑sklearn 的svm
我用的数据约两万多笔 栏位有17个
在training的时候用回圈让他一次是用不同的数目去train
(100 200 500 1000)
train的时候已也几个栏位而已 并不是全部17个
但就会卡住 跑很久 四个模型跑了一个多小时还没好
但我个别跑1000的也只要10秒而已
想说会不会是记忆体的关系吗?
但看工作管理员记忆体也没跑满
後来用IDLE去做一样的事
也是一样
而且分给python的记忆体差不多就100MB
然後我个别跑的时候 train data超过4000的时候也是会跑不出来
想请问这样是哪里有问题吗?
ps. 程式方面应该是没有错 因为是跟着网路上的教学做的 几乎一模一样
且单一跑跑得出来
新手发问 请多包涵 谢谢<(_ _)>
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.13.120
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1534315751.A.807.html
※ 编辑: lericee (140.112.13.120), 08/15/2018 14:49:35
1F:→ djshen: 看复杂度 08/15 15:00
谢谢d大 不过其实我没有完全了解svm..
以我所知svm时间复杂度好像是O(n^2)的样子吧?
所以我size先以小的先慢慢变大
100 200 500 1000 其实都在做一样的事
各自跑 0.2 1 8 10秒 这样
只是用回圈一起跑就会跑不出来
空间我就不太清楚.. 不过看网路上好像都几十万笔在跑的样子
用个几千就会跑不出来了吗??
至於资料分类有20种
※ 编辑: lericee (140.112.13.120), 08/15/2018 15:35:33
2F:→ f496328mm: SVM 很慢 08/15 17:54
3F:→ f496328mm: 主要是 SVM 背後的演算法相对复杂,tree 简单多了 08/15 17:55
哦哦 谢谢~
我想说一起跑应该也就加起来 大概20几秒
所以真的可能是还没跑完罗?
※ 编辑: lericee (140.112.13.120), 08/15/2018 18:35:46
4F:→ lericee: 另外想问一下anaconda的运作是怎麽运作呢? 因为我有时候 08/15 18:45
5F:→ lericee: 同样的code 在anaconda跑几十分钟出不来 用本机IDLE 一分 08/15 18:46
6F:→ lericee: 钟就好了 anaconda是在伺服器运作吗 还是也用本机处理呢? 08/15 18:47
7F:推 goldflower: 复杂度应该是2-3之间 但是回圈跑不出来没啥道理 08/15 19:31
8F:→ goldflower: 你有把verbose打开看看有没有东西吗 08/15 19:31
9F:推 goldflower: 你说anaconda跑不出来是指jupyter/ipython吗? 08/15 19:40
verbose 是指 fit(..., verbose=1) 吗
我试试看
我用anaconda 的jupyter notebook 然後一直显示在运行中 In[*] 这样
痾.. 不好意思 verbose是什麽呀..>"<
我是查到model.fit(~~~,verbose=1) 这个
不过我svm.fit()好像不能用的样子 说没这个参数
还是是别的东西吗@@
10F:推 handsomeLin: 一看就知道你的回圈没写好啊 08/15 20:13
但是有时候又可以欸@@ 虽然大部份不行
就是我跑三个的时候可以 跑四个就不行了
或是我跑[100,200,500]时可以 跑[1000,1500,2000]就不行
※ 编辑: lericee (140.112.13.120), 08/15/2018 20:34:11
※ 编辑: lericee (140.112.13.120), 08/15/2018 21:42:50
11F:推 goldflower: verbose就是print训练过程而已 08/15 21:56
12F:推 goldflower: 我刚查sklearn下面的svm都有verbose才对@@ 08/15 22:00
13F:推 goldflower: 阿 你会不会没做normalize 08/15 22:07
14F:推 goldflower: 你可以设定max_iter确认问题是不是在收敛条件上 08/15 22:32
对欸 我没有做normalize 因为我之前用内建iris data试的时候
发现没有normalize也做得蛮好的 所以就没用来试试看@@
https://imgur.com/a/WCt56AG
https://imgur.com/a/rQoNjEr
然後付上我短短的code
https://imgur.com/a/eR5M9BO
然後这是 没verbose参数 @@
还有下面是para=[100,200,500]的结果有出来
※ 编辑: lericee (140.112.233.9), 08/15/2018 23:26:36
※ 编辑: lericee (140.112.233.9), 08/15/2018 23:35:30
15F:推 Falldog: 先看看你的python是不是跑64bit的版本吧 08/16 00:09
我看官网是写64 (3.5.2) 电脑也是64位元
※ 编辑: lericee (140.112.233.9), 08/16/2018 01:18:38
16F:→ goldflower: normalize後还是跑不出大笔的结果吗? 08/16 02:13
有了欸! 而且快超多的@@
非常谢谢g大热心的回答!
※ 编辑: lericee (140.112.233.9), 08/16/2018 10:49:50
17F:→ lericee: 也谢谢其他人的帮忙~~ 08/16 12:08
18F:推 goldflower: 赞赞赞 恭喜成功 08/16 18:00
19F:→ lericee: 真的感谢G大的热心帮忙 Q_Q 08/16 22:28
20F:推 ggirls: 什麽是normalize? 08/21 17:27
21F:→ ggirls: 什麽是normalize? 08/21 17:27
把参数数值scale成0~1
※ 编辑: lericee (140.112.233.9), 08/23/2018 00:16:21
22F:→ s860134: 中文贴切一点叫归一化 08/23 20:26