作者kusoayan (Bert)
看板Python
标题[问题] ipython notebook 执行顺序?
时间Sat Mar 8 18:22:20 2014
想请问一下
在用 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)
1F:→ ccwang002:stdout 如果 browser 关了 ipython 是不会帮你抓的 03/09 01:07
2F:→ ccwang002:所以有一个 cell magic 叫 %%capture 03/09 01:07
3F:→ ccwang002:那数字只是记次你下过几次 input,执行过後就变文字了 03/09 01:08
4F:→ ccwang002:你下指令给 ipy 它就会执行,关掉 browser 也会 03/09 01:10
5F:→ ccwang002:但执行完後如果 browser 关了,ipy nb 就记不到 stdout 03/09 01:10
6F:→ ccwang002:所以就会有你说的跳号,但变数的值是都还存着的。 03/09 01:11
我实际试过了,跑一个耗时的运算的确会跑
但是他会持续显示 In [*],这样我完全无从得知他是不是跑完了
请问有什麽解决方法嘛(我确实知道他已经跑完了,但他却一直显示 In [*])
※ 编辑: kusoayan 来自: 140.112.248.24 (03/09 11:48)
7F:→ ccwang002:恩…你想要什麽解决方法 @@ 跑完的话 CPU 使用率会掉 03/09 12:31
8F:→ ccwang002:ipy nb 可以接受新的 input,右上不会有 kernel busy 03/09 12:31
9F:→ ccwang002:想要主动通知的话,不如写个 function 寄 email 给自己 03/09 12:32
11F:→ kusoayan:原来可以从右上角的 kernal busy 来看,那这样我就ok了 03/09 12:57
12F:→ kusoayan:,其实我只是想要找个方法知道他有没有跑完而已 03/09 12:57
13F:推 ccwang002:Kernel busy 跟你的 in * 会有一样的问题喔,连线断了 03/09 13:45
14F:→ ccwang002:状态就不会更新了 03/09 13:49
15F:→ kusoayan:所以还是只能从 CPU usage 来判断吗? 03/09 14:35
16F:→ kusoayan:或是用 email 03/09 14:35
17F:→ ccwang002:因为我不确定你的 job 是跑好几天还是几分钟的… 03/09 15:17
18F:→ ccwang002:其实随便下个 1+1 如果 hang 住就表示前面没执行完 03/09 15:18
19F:→ kusoayan:我的 job 大概都要跑好几个小时,而且我的 ipy nb 是放 03/09 15:29
20F:→ kusoayan:在 remote server 03/09 15:29
21F:→ kusoayan:我也有想过用 1+1 来判断XD 如果没有更好的解法就只能这 03/09 15:30
22F:→ kusoayan:样了XD 谢谢你! 03/09 15:30