[問題] ipython notebook 執行順序?

作者: kusoayan (Bert)   2014-03-08 18:22:20
想請問一下
在用 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 一定要一直開著?
作者: ccwang002 (亮)   2014-03-09 01:07:00
stdout 如果 browser 關了 ipython 是不會幫你抓的所以有一個 cell magic 叫 %%capture那數字只是記次你下過幾次 input,執行過後就變文字了你下指令給 ipy 它就會執行,關掉 browser 也會但執行完後如果 browser 關了,ipy nb 就記不到 stdout所以就會有你說的跳號,但變數的值是都還存著的。恩…你想要什麼解決方法 @@ 跑完的話 CPU 使用率會掉ipy nb 可以接受新的 input,右上不會有 kernel busy想要主動通知的話,不如寫個 function 寄 email 給自己例:mosky 寫的 https://github.com/moskytw/postbox
作者: kusoayan (Bert)   2014-03-09 12:57:00
原來可以從右上角的 kernal busy 來看,那這樣我就ok了,其實我只是想要找個方法知道他有沒有跑完而已
作者: ccwang002 (亮)   2014-03-09 13:45:00
Kernel busy 跟你的 in * 會有一樣的問題喔,連線斷了狀態就不會更新了
作者: kusoayan (Bert)   2014-03-09 14:35:00
所以還是只能從 CPU usage 來判斷嗎?或是用 email
作者: ccwang002 (亮)   2014-03-09 15:17:00
因為我不確定你的 job 是跑好幾天還是幾分鐘的…其實隨便下個 1+1 如果 hang 住就表示前面沒執行完
作者: kusoayan (Bert)   2014-03-09 15:29:00
我的 job 大概都要跑好幾個小時,而且我的 ipy nb 是放在 remote server我也有想過用 1+1 來判斷XD 如果沒有更好的解法就只能這樣了XD 謝謝你!

Links booklink

Contact Us: admin [ a t ] ucptt.com