科研小白的小帮助

面向超级小白记录一些内容,是我曾经犯傻的内容。希望能帮助到大家。

关于服务器使用:

  • 我用的是pycharm+mobaxterm。同门用的vscode。
  • 服务器没网怎么办?如果在校园网内用ccproxy,如果不在校园网内用clash+mobaxterm的隧道,参见校园网内无外网的服务器,通过代理连外网。或者用whl上传直接安装,但是不建议,因为whl的依赖太难弄了。
  • 同一个环境传到多个服务器上:离线安装conda环境(conda-pack)。当服务器没网并且需要分散实验压力到多个服务器上的时候很好使。在一个服务器上装好并打包,接下来只要把环境传到其他服务器上就行,不需要再在其他服务器上联网了。
  • mobaxterm传数据太慢?pycharm同步数据太慢?:把代码和数据打包为zip传到服务器上然后unzip。(我曾经傻傻地问师兄怎么能传数据快一点。。师兄说用scp,但我最后没用,嘻嘻)。因为mobaxterm是一个文件一个文件传,如果数据集里文件比较多就巨慢,zip后就一个文件传上去就很快。

关于服务器常用指令:

  • 看服务器gpu情况:nvidia-smigpustat。比较喜欢后者,但是需要pip安装到当前环境中。
  • 看服务器cpu情况:top。us是使用量,最高是100。
  • 查进程:ps -aux | grep [进程信息]。进程信息可以是进程id,也可以是执行进程的指令比如python train.py
  • 快速看log:tail -f [log文件名称]
  • nohup后台运行进程(这样就不需要一直开着你自己的电脑运行进程了,只要服务器开着就能一直运行):nohup [指令] > [log文件名称] 2>&1 &。指令如python train.py -e test_exp --gpu 0,如bash run_once.sh等。2>&1的1是标准输出stdout,2是标准错误stderr,这句话表示把标准错误输出送到标准输出的文件里。
  • bash文件出现\r相关的报错:这个是因为win下的换行是CRLF格式的,linux下应该要LF格式,所以如果你的bash文件是CRLF格式的传到linux服务器上运行会报错。pycharm底行右边可以看到当前文件的换行格式。解决方式是执行sed命令:sed -i 's/\r//' [bash文件名]-i表示直接编辑,/用来分割sed命令,s表示替换,\r是需要替换的内容,//相连那么分隔中间是空的,所以意思就是:执行一个直接编辑文件的sed命令,任务是把文件中的\r替换为空。

关于代码参数:

  • argparse:单个实验
  • bash:批量跑实验
posted @ 2023-04-27 14:30  反射狐  阅读(43)  评论(0编辑  收藏  举报