技巧一:有的时候需要远程跑实验代码,这种时候一般我们通过ssh连接到服务器,然后在ssh中运行代码。这种运行方式会在退出本地终端或IDE时顺带把我们执行的代码也终止掉。如果希望退出本地终端时服务器继续执行代码,可以使用screen指令:
screen -S 起个名字
然后在唤起的screen中执行代码,就可以实现退出本地端后服务器继续执行代码了。
要离开screen,可以使用ctrl+a+d,此时screen运行在后台。
希望重新进入时,使用:
screen -r 起的名字
就能连接了,如果上次没有正常退出,就加个-D就行
screen -D -r 起的名字
小tips:在screen中光标没法自由移动,而且滚轮也不能滚动历史记录,此时可以使用ctrl+a+[进入screen复制模式,从而可以使用上下左右移动光标查看历史输出信息。
技巧二:远程代码难以调试,总不能一直使用print吧。。。所以可以试试python的pdb库,在终端中调试代码。
使用方法:
import pdb
pdb.set_trace()
然后代码执行到这句话(就是设置个断点)就会停下进入pdb模式。需要注意的是,华为mindspore框架中,GRAPH模式不能使用这个库,因为它不是JIT Callback Functions,调试时切换到PYNATIVE模式即可。
在pdb模式中,一定要记住两个指令,n代表执行下一行,c代表执行到下一次遇到该断点。
(pdb) n
(pdb) c
技巧三:后续还会更新!