[问题] 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