※ 本文為 MindOcean 轉寄自 ptt.cc 更新時間: 2022-01-22 01:36:11
看板 Gossiping
作者 標題 [問卦] python做科學運算,要分享什麼?
時間 Fri Jan 21 05:18:28 2022
欸欸 我明天group meeting要分享python科學數值運算小技巧
我目前想到要講的
1. 介紹numpy
2. 不要用迴圈 用numpy
3. 用numba jit編譯
4. 用multiprocessing加速
5. 藉由torch 使用gpu做運算
科學運算相關的python小技巧
臥虎藏龍的鄉民還有什麼好建議嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 128.146.189.73 (美國)
※ 文章代碼(AID): #1XwT6dBc (Gossiping)
※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1642713511.A.2E6.html
噓 : 睡著惹2F 220.134.89.190 台灣 01/21 05:23
推 : hello world 的技巧3F 49.158.127.17 台灣 01/21 05:24
推 : 即時 AI 換臉。換自己當A片男主角不用等4F 49.217.109.203 台灣 01/21 05:25
推 : 我覺得第5項可以改cupy,或者也介紹cupy5F 98.45.135.233 美國 01/21 05:28
我之前測了一下cupy很多功能沒比torch快
你有興趣可以認真跑個benchmark看看
→ : cupy的優點是用起來跟numpy差不多6F 98.45.135.233 美國 01/21 05:28
torch我覺得也差不多啊※ 編輯: newwu (128.146.189.73 美國), 01/21/2022 05:30:03
→ : 你是用cupy幾版啊? 之前 anaconda 是v67F 98.45.135.233 美國 01/21 05:30
→ : 的時候有些是真的滿慢的
→ : 的時候有些是真的滿慢的
推 : 科學運算青青幾時會被起訴9F 39.13.196.125 台灣 01/21 05:30
→ : 我沒有用過torch,但numpy 跟 cupy 用起10F 98.45.135.233 美國 01/21 05:30
→ : 來幾乎就是把程式瑪裡面的 numpy改cupy
→ : torch 也這麼方便喔?
我覺得幾乎是這樣→ : 來幾乎就是把程式瑪裡面的 numpy改cupy
→ : torch 也這麼方便喔?
這也是我用torch 不用tensorflow的理由
最近的版本更是大多數的numpy function都有對應
和cupy比不知道哪個涵蓋得多
推 : 我覺得很吃 interperter 有時候向量運13F 114.42.10.52 台灣 01/21 05:35
→ : 算會被解成迴圈讀取…benchmark出來會
→ : 一樣(#
沒道理啊→ : 算會被解成迴圈讀取…benchmark出來會
→ : 一樣(#
都用numpy了 應該是用numpy底層的c編譯出的code吧
推 : faiss16F 27.52.11.33 台灣 01/21 05:35
→ : pytorch 我覺得最好用的是可以一次扔一17F 114.42.10.52 台灣 01/21 05:37
→ : 整個 tensor 做 矩陣乘法 再用 nn.func
→ : tion去運算 自己土炮出來的底層可能比
→ : 較快 但沒那麼方便跟直觀
→ : 整個 tensor 做 矩陣乘法 再用 nn.func
→ : tion去運算 自己土炮出來的底層可能比
→ : 較快 但沒那麼方便跟直觀
推 : multiprocessing 我覺得可以往後放,這個21F 98.45.135.233 美國 01/21 05:38
→ : 上面是不討論 numpy 狀況 我的意思是 b22F 114.42.10.52 台灣 01/21 05:38
→ : uilt-in function for python
感謝分享→ : uilt-in function for python
因為有人想要學我才放的
不然我也沒用過幾次
推 : 我之前也是自己跑模擬被multiprocessing26F 98.45.135.233 美國 01/21 05:42
→ : 炸到才知道有那鳥事
推 : numba jit 真的很不賴
真的 而且會optimize→ : 炸到才知道有那鳥事
推 : numba jit 真的很不賴
你假如用numpy向量運算沒注意細節,jit會快很多
推 : 拍聳的爬蟲 不是滿好用的嗎29F 36.226.91.17 台灣 01/21 05:48
推 : numpy numba jit parallel mp cupy30F 75.36.206.235 美國 01/21 05:55
是說說到gpu
我覺得julia cuda超好寫
比c好寫太多 效率也不差
※ 編輯: newwu (128.146.189.73 美國), 01/21/2022 05:58:54
推 : 介紹pytorch 剩下不重要31F 42.73.63.174 台灣 01/21 06:11
推 : python 連文組都會還要報啥32F 140.113.87.196 台灣 01/21 06:12
推 : 現在幾點而已竟然這麼多樓33F 114.136.235.229 台灣 01/21 06:13
推 : 文組不會的是 numpy 呀34F 98.45.135.233 美國 01/21 06:14
→ : 啥group meeting= = meeting報這種大家可以35F 192.226.182.12 加拿大 01/21 06:15
→ : 自己學的東西 誰會感興趣= =
又不是我要求的→ : 自己學的東西 誰會感興趣= =
我們的group meeting很free啦
大部分的時候都不是報paper那種
反正半小時結束也可以
噓 : group meeting 報這個誰要聽?37F 152.23.88.207 美國 01/21 06:18
噓 : broadcasting吧38F 35.2.21.79 美國 01/21 06:18
這倒是值得一說推 : 猛 我也想聽39F 168.5.162.145 美國 01/21 06:25
→ : group meeting報paper也沒人要聽阿40F 192.226.182.12 加拿大 01/21 06:29
→ : 老闆通常只想聽有甚麼研究上的progress
喔喔→ : 老闆通常只想聽有甚麼研究上的progress
我們的group meeting不是這樣
主要是學生分享一些實用的主題 有些內容本來就很課本
推 : 報這幹麻?非本科?42F 42.73.47.137 台灣 01/21 06:33
廢話CS報這個是要笑死人嗎
→ : PYTHON的歷史43F 61.228.102.128 台灣 01/21 06:39
這最無用吧 有人看程式書很認真讀完這一部份的嗎推 : 有沒有整理完的slide 想讀44F 168.5.162.145 美國 01/21 06:44
我可以把notebook分享給你※ 編輯: newwu (128.146.189.73 美國), 01/21/2022 06:46:47
推 : scikit learn and jupiter45F 114.198.171.78 台灣 01/21 06:56
推 : 偶在初學Python 也想要Notebook @@46F 42.76.31.68 台灣 01/21 06:56
→ : Panda, Django47F 122.118.200.7 台灣 01/21 07:02
→ : 不如介紹copy paste48F 223.136.118.72 台灣 01/21 07:06
推 : 想要notebook+149F 118.166.175.120 台灣 01/21 07:12
推 : 我都用 fortran 寫50F 111.241.105.180 台灣 01/21 07:30
推 : 想要+151F 27.242.66.146 台灣 01/21 07:32
推 : 想要+152F 111.71.110.141 台灣 01/21 07:39
推 : pickle有安全性問題,少用53F 36.237.107.40 台灣 01/21 07:41
推 : 調用是支語,可以用英文名詞嗎?虧54F 36.226.210.157 台灣 01/21 07:53
→ : 你ip還是美國。
雖然我不在意,修了→ : 你ip還是美國。
主要是已經太多英文了 不想太晶晶體
推 : 想要筆記!謝謝56F 42.73.125.242 台灣 01/21 07:54
推 : +1, thank you for sharing57F 169.232.149.122 美國 01/21 07:54
噓 : Dynamic programming58F 111.71.80.135 台灣 01/21 07:55
推 : 學cython59F 223.136.169.51 台灣 01/21 07:59
推 : 視覺化方面有plotly,簡單幾行能做60F 223.136.247.139 台灣 01/21 08:25
→ : 互動式,3d,時間軸的圖
我喜歡plotly 不過感覺系上的人都沒特別感興趣(畫圖就是要發paper啊)→ : 互動式,3d,時間軸的圖
dash還能簡單就做出互動界面
→ : 還有操作excel的xlwings,不用存檔62F 223.136.247.139 台灣 01/21 08:26
→ : 直接操作
→ : MongoDB非結構化資料庫跟python 整
→ : 合不錯
→ : 直接用pandas啦,numpy 比較低階
看用途啦→ : 直接操作
→ : MongoDB非結構化資料庫跟python 整
→ : 合不錯
→ : 直接用pandas啦,numpy 比較低階
推 : jax 幾乎是無縫版的gpu-numpy67F 1.200.135.191 台灣 01/21 08:34
主要是我看benchmark,jax的速度好像也不如torch推 : 科學運算還是用fortran居多68F 101.10.47.53 台灣 01/21 08:40
→ : 數值運算能力 有fortran效能好..
我不會 已經會c python julia了→ : 數值運算能力 有fortran效能好..
懶得多學
現在也越來越少fortran了
都是老人/老闆傳下來的code
python的好處還有可以直接接軌業界
推 : 想知道call c++ dll 跟純c++差異70F 39.9.129.111 台灣 01/21 09:04
推 : Python 社群的分享精神真好,連在八卦71F 114.34.225.14 台灣 01/21 09:08
→ : 版都這麼認真討論回答 推
等我明天會站內信給要的,可是是英文喔→ : 版都這麼認真討論回答 推
※ 編輯: newwu (128.146.189.73 美國), 01/21/2022 09:16:49
推 : notebook +173F 123.195.198.63 台灣 01/21 09:17
推 : 我也想要,謝謝您,再麻煩站內了74F 39.9.72.164 台灣 01/21 09:22
推 : 想要+175F 49.216.162.11 台灣 01/21 09:25
推 : 可以分享notebook嗎?感謝76F 111.71.49.248 台灣 01/21 09:29
推 : 想要notebook+177F 118.171.118.17 台灣 01/21 09:35
推 : 可以也寄notebook給我嗎?謝謝78F 24.30.127.18 美國 01/21 09:35
推 : 想要+1 最近有想學 謝謝><79F 101.9.98.239 台灣 01/21 09:35
推 : 求分享+180F 59.124.94.67 台灣 01/21 09:36
推 : 想要++求分享 感謝81F 175.181.211.25 台灣 01/21 09:43
推 : +1 Thx82F 111.71.213.247 台灣 01/21 09:51
推 : 求分享++跪謝83F 192.192.124.201 台灣 01/21 09:52
推 : 求分享,謝謝。84F 42.73.213.43 台灣 01/21 09:53
推 : 求分享+185F 59.124.127.49 台灣 01/21 09:57
推 : 需要 謝謝86F 42.75.159.129 台灣 01/21 09:59
推 : 想要筆記++ 感謝87F 114.136.234.197 台灣 01/21 10:05
推 : ++88F 103.152.151.68 台灣 01/21 10:10
推 : 想要筆記+1 謝謝~89F 101.9.200.123 台灣 01/21 10:10
推 : ++90F 218.164.54.246 台灣 01/21 10:15
推 : 筆記+191F 223.136.247.139 台灣 01/21 10:22
推 : 求分享筆記,謝謝92F 27.240.161.140 台灣 01/21 10:23
推 : 想要筆記 +1,謝謝~93F 42.73.82.245 台灣 01/21 10:32
推 : +1 notebook94F 61.61.145.68 台灣 01/21 10:39
推 : 想拜讀高手的分享!先謝謝您慷慨分享95F 111.254.212.130 台灣 01/21 10:53
推 : 想要+196F 111.82.96.15 台灣 01/21 11:03
推 : +1感謝!97F 49.216.161.64 台灣 01/21 11:13
推 :98F 68.181.16.196 美國 01/21 11:25
推 : 站內++99F 27.247.100.254 台灣 01/21 11:28
推 : 站內+1100F 129.19.63.117 美國 01/21 11:31
→ be00148 …
推 : notebook++102F 42.73.155.1 台灣 01/21 12:04
推 : 想要筆記+1 求分享感謝~103F 111.235.208.139 台灣 01/21 12:04
推 : 想要+1104F 223.140.91.74 台灣 01/21 12:19
推 : 站內+1105F 42.73.143.205 台灣 01/21 12:21
推 : Notebook+1106F 42.76.173.174 台灣 01/21 12:21
推 : 站內+1107F 61.218.151.186 台灣 01/21 12:23
推 : 想要notebook +1 謝謝108F 60.251.32.50 台灣 01/21 12:30
推 : 站內+1109F 42.76.9.146 台灣 01/21 12:30
推 : +1110F 223.136.229.96 台灣 01/21 12:34
推 : 筆記++111F 1.171.43.126 台灣 01/21 12:41
推 : 想要+1 謝謝!112F 223.138.117.117 台灣 01/21 12:44
推 : 求分享,謝謝113F 110.26.39.83 台灣 01/21 12:46
推 : 站內++114F 223.140.206.74 台灣 01/21 12:47
推 : +1115F 111.249.209.231 台灣 01/21 13:00
推 : 站內notebook+1116F 101.12.21.109 台灣 01/21 13:04
推 : 想要筆記+1 感謝117F 140.109.53.252 台灣 01/21 13:05
推 : 求分享 感謝~118F 223.141.90.173 台灣 01/21 13:15
推 : 筆記謝謝 雖然一定不會給119F 123.240.243.33 台灣 01/21 13:17
推 : 站內++ 謝謝120F 107.3.131.211 美國 01/21 13:19
推 : 筆記+1 謝謝121F 60.250.107.120 台灣 01/21 13:21
推 : 有興趣Notebook +1,先感謝分享122F 27.53.112.209 台灣 01/21 13:22
推 : notebook+1 感謝123F 61.216.176.145 台灣 01/21 13:23
推 : 想要筆記+1 謝謝~124F 122.116.185.203 台灣 01/21 13:30
推 : 站內+1 感謝125F 111.249.67.31 台灣 01/21 13:36
推 : 想要+1126F 101.12.101.189 台灣 01/21 13:42
推 : python 的引數傳送非常靈活,是這原因才127F 49.217.109.203 台灣 01/21 13:44
→ : 讓一堆東西寫在上面嗎?不然明明想要速度
→ : 讓一堆東西寫在上面嗎?不然明明想要速度
推 : 想要+1129F 101.10.109.242 台灣 01/21 13:45
→ : 就用 C或組語重寫啊..130F 49.217.109.203 台灣 01/21 13:45
推 : +1 謝謝131F 122.60.19.93 紐西蘭 01/21 13:49
推 : 你沒要用自動微分功能換pytorch幹麻132F 60.250.32.97 台灣 01/21 14:12
→ : 想跑在gpu用cupy就好了
→ : torch有些相同功能的跟numpy名稱不同
→ : 還更不方便
→ : 你要教torch那就直接教怎麼寫custom
→ : backward fundtion, cpp extension
→ : 想跑在gpu用cupy就好了
→ : torch有些相同功能的跟numpy名稱不同
→ : 還更不方便
→ : 你要教torch那就直接教怎麼寫custom
→ : backward fundtion, cpp extension
推 : 想要+1 感謝分享138F 42.74.127.133 台灣 01/21 14:14
推 : tf2.0也差不多了139F 174.127.227.63 美國 01/21 14:15
推 : 說到數值運算的小技巧我推薦是einsum140F 60.250.32.97 台灣 01/21 14:17
→ : 除非你tensor要消掉的維度很複雜
→ : 不然einsum有夠慢
→ : 一般人的usecase最多只需要用到bmm
→ : @Huang因為生態圈支援完整吧
→ : 速度倒是不用擔心 數值運算套件的底
→ : 層全部是編譯語言 python只是當個界
→ : 面XD
→ : 除非你tensor要消掉的維度很複雜
→ : 不然einsum有夠慢
→ : 一般人的usecase最多只需要用到bmm
→ : @Huang因為生態圈支援完整吧
→ : 速度倒是不用擔心 數值運算套件的底
→ : 層全部是編譯語言 python只是當個界
→ : 面XD
推 : 生態圈應該是大者恒大,除非財團介入力推148F 49.217.109.203 台灣 01/21 14:44
→ : C語言因為可攜性,不是建立生態圈很久了?
→ : C語言因為可攜性,不是建立生態圈很久了?
推 : notebook+1 感謝150F 39.13.197.208 台灣 01/21 14:44
推 : 做數值運算跟研究的沒這麼需要可攜151F 60.250.32.102 台灣 01/21 15:04
→ : 性吧XD
→ : 性吧XD
推 : 站內++ 謝謝153F 114.26.218.144 台灣 01/21 15:32
推 : 站內++ 謝謝154F 211.75.72.242 台灣 01/21 16:12
推 : 我要 站內++ 謝謝155F 91.40.95.213 德國 01/21 16:34
推 : 筆記++,感恩!156F 46.114.145.118 德國 01/21 16:50
推 : +1157F 49.216.26.238 台灣 01/21 17:35
推 : 站內++ 謝謝158F 42.73.122.122 台灣 01/21 18:12
推 : 站內++ 感恩!!159F 114.84.149.183 中國 01/21 18:35
推 : notebook +1! 謝謝160F 101.137.10.86 台灣 01/21 20:39
推 : 求分享,也想要學習,謝謝161F 219.68.197.78 台灣 01/22 01:26
--
※ 看板: Gossiping 文章推薦值: 0 目前人氣: 0 累積人氣: 422
回列表(←)
分享