作者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/m.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