1 相关软件
比较经典的软件是Xshell
和Xftp
,一个用来控制终端的,一个用来传文件的。我是被人安利了一个软件MobaXterm
,这一个软件可以实现上面两个软件的操作。
2 连接
因为我是实验室的服务器,所以就不给出自己买服务器申请账号等步骤了。
点ok
进入后会让你输入密码,输入密码的时候不会显示密码,也不会显示*
,光标不会动,输完了按回车就行。
3 配环境
3.1 安装anaconda
参考这篇文章:如何在Linux服务器上安装Anaconda(超详细)
3.2 用conda指令配环境
这些就和Windows
的Anaconda Prompt
操作一样了,大概步骤就是:
conda create -n 环境名字 python=版本
conda activate 环境名字
conda install / pip install ...
// 补充:查看现有环境
conda info --envs
4 运行项目
运行项目前先通过nvidia-smi
(方框内就是使用程度)或top
命令(按q
退出)看一下服务器还有没有地方给你用。两种指令的显示结果如下:
一般从Github
上下载的项目就挺完整的,把那个文件夹拖到你的MobaXterm
里,切换到你配好的环境:
conda activate 环境名字
(环境名字):cd 文件夹路径
在该环境下,运行这条指令:
(环境名字):nohup bash 脚本名.sh > 日志名.txt 2>&1 &
这个指令挺古怪的,核心就是bash 文件名.sh > 日志名.txt
,其他的照抄。这条指令的作用就是把程序挂服务器上,你电脑睡不睡眠都不会影响它训练了。
在这行指令结束后会弹出一个进程号,如果你想结束这个进程,直接用kill
即可
kill + 进程号
这里讲一下“脚本文件”和“日志”的作用:
4.1 文件
也就是你的跑模型的代码,比如:python train.py
。但是有些指令很多参数,比如:
python translate.py \
--src data/src-test-tokenized.txt \
--tgt data/tgt-test-tokenized.txt \
--knl data/knl-test-tokenized.txt \
--model models/base_model_step_20000.pt \
--output pred.txt \
-replace_unk \
-report_bleu \
-dynamic_dict \
-gpu 1 \
-batch_size 32
你在命令行复制粘贴看着不美观,并且换行也无法处理。这时候就把这个复制下来存到你的sh
文件(也叫脚本)中,通过bash 脚本名.sh
运行这条指令。
4.2 日志
为了记录训练过程,可以通过> 日志名.txt
将其训练过程存储到日志中,比如:
这样你就可以在训练过程中实时查看日志了。用MobaXterm
可以直接双击打开,用别的似乎是用cat log.txt
查看。
4.3 加餐
关于别的关键字的含义,请参考:Linux nohup、&、 2>&1是什么?