[問題] ipython notebook 執行順序?

看板Python作者 (Bert)時間11年前 (2014/03/08 18:22), 編輯推噓1(1021)
留言22則, 2人參與, 最新討論串1/1
想請問一下 在用 ipython 的 notebook 時,cell 的執行順序會影響到什麼嘛? 有時候寫到後面突然想改前面的東西(有時會影響後面、有時不會) 這時候大家改完後都會怎麼做呢? 1. 把後面的所有 cells 都再跑過一次 2. 直接到最後面繼續寫 其實有點搞不清楚 ipython notebook 的原理 對於他這樣跳著順序執行感覺起來怪怪的XD 他把執行順序記起來是為了可以「重現」整個執行過程嘛? 如果是的話 In [10] x = x + 1 這種有 side effect 的 cell 要怎麼重現呢? 因為如果我重跑一次這個 cell,那他的編號就會變成 In [11] 然後整個頁面上就沒有 In [10] 了 那這樣 ipy 跑的時候是不是 In [9] -> In [11] 這樣跑? 如果是的話不就少跑了 In [10] 了? 希望有熟 ipy notebook 的高手可以指點一下 也希望有前輩可以分享一下平常都怎麼用 ipy notebook 謝謝! PS 偷問一下,ipy notebook 可以跑一個耗時的運算,然後把 browser 關掉嘛? 也就是在把 browser 關掉後,他會繼續跑原本的運算嗎? 還是 browser 一定要一直開著? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.248.24 ※ 編輯: kusoayan 來自: 140.112.248.24 (03/08 18:58)

03/09 01:07, , 1F
stdout 如果 browser 關了 ipython 是不會幫你抓的
03/09 01:07, 1F

03/09 01:07, , 2F
所以有一個 cell magic 叫 %%capture
03/09 01:07, 2F

03/09 01:08, , 3F
那數字只是記次你下過幾次 input,執行過後就變文字了
03/09 01:08, 3F

03/09 01:10, , 4F
你下指令給 ipy 它就會執行,關掉 browser 也會
03/09 01:10, 4F

03/09 01:10, , 5F
但執行完後如果 browser 關了,ipy nb 就記不到 stdout
03/09 01:10, 5F

03/09 01:11, , 6F
所以就會有你說的跳號,但變數的值是都還存著的。
03/09 01:11, 6F
我實際試過了,跑一個耗時的運算的確會跑 但是他會持續顯示 In [*],這樣我完全無從得知他是不是跑完了 請問有什麼解決方法嘛(我確實知道他已經跑完了,但他卻一直顯示 In [*]) ※ 編輯: kusoayan 來自: 140.112.248.24 (03/09 11:48)

03/09 12:31, , 7F
恩…你想要什麼解決方法 @@ 跑完的話 CPU 使用率會掉
03/09 12:31, 7F

03/09 12:31, , 8F
ipy nb 可以接受新的 input,右上不會有 kernel busy
03/09 12:31, 8F

03/09 12:32, , 9F
想要主動通知的話,不如寫個 function 寄 email 給自己
03/09 12:32, 9F

03/09 12:34, , 10F
03/09 12:34, 10F

03/09 12:57, , 11F
原來可以從右上角的 kernal busy 來看,那這樣我就ok了
03/09 12:57, 11F

03/09 12:57, , 12F
,其實我只是想要找個方法知道他有沒有跑完而已
03/09 12:57, 12F

03/09 13:45, , 13F
Kernel busy 跟你的 in * 會有一樣的問題喔,連線斷了
03/09 13:45, 13F

03/09 13:49, , 14F
狀態就不會更新了
03/09 13:49, 14F

03/09 14:35, , 15F
所以還是只能從 CPU usage 來判斷嗎?
03/09 14:35, 15F

03/09 14:35, , 16F
或是用 email
03/09 14:35, 16F

03/09 15:17, , 17F
因為我不確定你的 job 是跑好幾天還是幾分鐘的…
03/09 15:17, 17F

03/09 15:18, , 18F
其實隨便下個 1+1 如果 hang 住就表示前面沒執行完
03/09 15:18, 18F

03/09 15:29, , 19F
我的 job 大概都要跑好幾個小時,而且我的 ipy nb 是放
03/09 15:29, 19F

03/09 15:29, , 20F
在 remote server
03/09 15:29, 20F

03/09 15:30, , 21F
我也有想過用 1+1 來判斷XD 如果沒有更好的解法就只能這
03/09 15:30, 21F

03/09 15:30, , 22F
樣了XD 謝謝你!
03/09 15:30, 22F
文章代碼(AID): #1J6kzWzY (Python)
文章代碼(AID): #1J6kzWzY (Python)