在服务器上进行深度学习的入门教程
1.远程登录Windows用户推荐使用Xshell主机那里填上服务器IP,下面填一下端口号,然后点击连接,之后会让你输入用户名密码,输入之后就可以进入啦2.GPU状态进入之后可能大家最想关注的就是GPU占用情况,可以使用一下两种命令来查看一下~watch -n 1 nvidia-smi或者watch --color --n 1 gpustat --color其中,--n是代表刷新时间,1就是每秒刷
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
更多推荐
所有评论(0)