作者sooge (喜欢小女友Yerin )
看板Python
标题[问题] 求救python程式加速
时间Sat Nov 9 14:01:13 2019
http://i.imgur.com/RVq8sWe.jpg
我现在在跑资料检索
总共有三个for回圈
i的大小是18000
j的大小是35000
k的大小是10
总共要对这两段程式码递回10次
现在我只跑完两次而已 一次要8小时 作业要赶不出来了
请问有办法提高我的运算速度吗
python新手求解QQ
-----
Sent from JPTT on my Asus ASUS_X00QD.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.136.46.124 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1573279281.A.391.html
1F:推 yiche: Numba/ cython 11/09 14:31
2F:→ sooge: numba是指用jit吗 我试试看 谢谢 11/09 14:58
3F:→ sooge: jit是不是没办法处理array.... 11/09 15:46
4F:→ sooge: 一直报错 11/09 15:47
5F:→ f496328mm: multiprocessing 11/09 16:53
6F:推 f422661: 这不是IR作业吗 11/09 16:59
7F:→ gary9630: hi 刚好有空档想了一下 我针对你的e_step那个function 11/09 17:35
8F:→ gary9630: 改成向量运算就快很多了 因为要跟你原本方法比较 18000 11/09 17:35
9F:→ gary9630: 35000的量有点多 所以我用1800 3500来算 你原本的算法 11/09 17:35
10F:→ gary9630: 大概是指数倍的成长 用向量的话会明显下降 程式码大概是 11/09 17:35
12F:→ gary9630: 另外e_step有个小地方感觉怪怪的 就是denominator==0 11/09 17:38
13F:→ gary9630: 不做normalize 设成0是只要最後一个k吗 感觉会是全部 11/09 17:38
14F:→ gary9630: 的k 如果是这样你原本的loop k要拉上去才对优 11/09 17:38
15F:推 TuCH: 看起来是用到矩阵运算 改成numpy可以变快至少100倍 11/09 17:40
17F:→ gary9630: Pj7i2S 如果有细节不清楚再站内信问我吧! 11/09 17:41
19F:推 yiche: 推g大有心 trace code 11/09 17:55
20F:→ gary9630: 哈哈 不会 刚好有空就研究了一下 11/09 17:58
21F:→ sooge: 谢谢g大!!!! 11/09 20:26
22F:→ sooge: 然後我看不太懂你denominator那边的意思,因为denominator 11/09 20:32
23F:→ sooge: 会累加所以最後k那层跑完後只会得到一个dominator值 11/09 20:32
24F:→ sooge: 喔对欸 我懂你意思了 感谢QQ 11/09 20:34