1.远程登录

Windows用户推荐使用Xshell

主机那里填上服务器IP,下面填一下端口号,然后点击连接,之后会让你输入用户名密码,输入之后就可以进入啦

2.GPU状态

进入之后可能大家最想关注的就是GPU占用情况,可以使用一下两种命令来查看一下~

watch -n 1 nvidia-smi

或者

watch --color -n 1 gpustat --color

其中,--n是代表刷新时间,1就是每秒刷新一次;--color是加颜色好看一点QwQ,去掉也可以

按ctrl+z可以退出哦~

3.传输文件

如果显卡有空闲,我们就可以准备跑代码啦

不过首先需要把代码和数据集复制到服务器上。这里推荐使用Xftp,和Xshell一块下载就可以。

在Xshell中点击这个按钮就可以传输文件了,界面十分友好,直接把Windows的文件拖过去就行了

甚至可以像Windows一样操作Linux里的文件哦

要想运行python文件,除了坏境外(服务器上要用Anaconda不然人多容易乱掉),还要把文件的访问权限更改一下,如果是小白没有特殊需求的话可以直接

chmod 777 xxx.py

777就是把权限拉满。如果有不希望其他人访问这个文件等其他需求,可以查一下linux文件访问权限的相关知识随意修改。

嫌麻烦的话在Xftp中也是可以修改权限的

4.运行代码

在activate你自己的Anaconda环境并更改文件权限之后,使用

python xxx.py

即可运行代码。

不过我们可能需要并行运行多种参数的代码

在命令后面加上&即可让命令在后台执行。为了能看到训练日志,可以使用>将输出重定向到一个文件中(否则会直接打印到屏幕上)

运行的时候代码中要调的参数用argparse(比较常见的东西,如果你读别人的代码的话几乎都是用这个的)

比如要调整dropout参数和lr参数:

python train.py --dropout=0.6 --lr=0.005 > log_001.txt &

用jobs命令可以查看后台任务的运行状况(任务号、进程号、stopped、running等),在前台运行的程序用ctrl+z可以stop它并丢到后台,用bg [任务号] (不含方括号,介绍linux命令的文档都是这种格式哦)命令可以让stopped的任务继续在后台跑,用fg[任务号]命令可以让后台的任务来前台执行。

为了防止忘记上面调了那些参数,可以把命令写成shell脚本,即创建一个xxx.sh文件,把上面的这条命令放进去,然后赋予文件权限后用 ./xxx.sh 即可

还可以在y前面加上指令指定使用哪块GPU,比如

CUDA_VISIBLE_DEVICES=0 python train.py --dropout=0.6 --lr=0.005 > log_001.txt &

就是使用0号GPU

注意:对于TensorFlow用 户而言,程序中新建Session时一定要设置gpu_options.allow_growth为True。否则 TensorFlow 会占用掉你选中显卡的所有显存

有时候可能想要跑多个参数,可以把多个参数放到.sh文件中让它一个一个跑,然后就可以愉快地摸鱼去啦~

5.tmux

在正式运行代码之前,有必要介绍一下tmux。

tmux是Terminal MultipleXer的缩写,意思是“终端复用器”,为什么要介绍它呢?

要知道,我们的ssh连接在中断之后,其中的进程也会终止,也就是说我们跑一个代码要几天的话中间ssh连接断开了,这几天也就白跑了。

一种方式是在命令前面加上 nohup 

nohup python train.py --dropout=0.6 --lr=0.005 > log_001.txt &

不过这样还不够方便,因为我希望实时知道每个代码运行到什么程度,比如创建多个窗口,让每个代码都在前台跑,我需要看的时候直接进入这个窗口就可以看到训练进度。而且当我们ssh连接断开时,这些窗口并不会关闭,代码还会继续跑!

这就是tmux的用处!

安装好tmux后,使用

tmux new -s xxx

创建一个名为xxx的会话(tmux session),之后就会进入一个tmux窗口,其左下角

代表当前窗口的名称编号等信息

按Ctrl+B,之后再按C即可创建一个新窗口

上面的三个窗口中,2:bash有一个星号*, 代表当前的窗口是2

按Ctrl+B,之后再按相应数字键即可切换到相应窗口(Linux中尽量不要按108键盘右面的键盘区数字可能会有问题)

如果一次开9个以上窗口,就需要其他的方式切换了,不过开这么多窗口毕竟就不够方便了,也可以再新建一个会话

使用Ctrl+B,再按D可以退出当前会话,或者输入tmux detach也可以退出(注意,用Ctrl+D会删除当前窗口,删掉就回不来了,不要搞混哦。只有一个窗口的时候会删掉会话)

查看已有的session列表:

tmux ls

重新连接某个会话:

tmux attach -t xxx
上下分屏:Ctrl + B 再按 "
左右分屏:Ctrl + B 再按 %
切换分屏:Ctrl + B 再按 o

将以下配置文件(文件名:.tmux.conf)添加到自己的目录下,并将tmux退出再重进,即可使用鼠标:

# mouse mode on
set-option -g mouse on

还可以添加如下文件(.vimrc)让vim也更加好用:

set nu
syntax on
set hlsearch
set tabstop=4
set showmatch
set ruler
set mouse=a
set laststatus=2

set statusline=%f         " Path to the file
set statusline+=\ -\      " Separator
set statusline+=FileType: " Label
set statusline+=%y        " Filetype of the file
set statusline+=\ \ \     " Separator
set statusline+=%4l/%L    " Current line

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐