目录
为了记录一下最近学习用远程服务器跑代码的步骤,也给小白提供一些可利用的教程,才下了这个文章,希望能有所收获。我先说一下我要做什么,避免你们迷路。
需求:远程连接服务器,利用vscode调试代码并运行,即一边调试一边运行。
1. 远程服务器的链接
这里不想过多的说,你可以找一些可以链接远程服务器的软件,我用的是Xshell这个软件,感觉还是挺好的。
2. 远程连接网络
由于服务器没有图像化界面,并且搭建环境需要网络,所以只能通过命令的形式登录校园网。当然,如果你能自己解决网络问题,这章就跳过吧。
2.1 查看网址信息
你需要在windows下查看校园网登录页面源码,获取要提交的字段名称。
就是寻找账号,密码,登录对应的name。
2.2 连接网络
下面这条命令可以登录校园网:
curl 'http://ip' -d "DDDDD=student_id&upass=password&0MKKey="
注意:ip,student_id,password都换成相对应的值。
会出现html的代码,我只截取了一部分。(我的是这样,我也不知道你们会是啥。)
这就代表你连接上了。
2.3 注销
等到你把需要下的东西都下好了,想要退出自己的上网账号的话,执行下面的命令就可以了:
curl 'http://ip/F.htm'
注:只需要填写ip对应的值即可。
3. 搭建TensorFlow
首先,你要明白的是,我是利用了anaconda搭建的Tensorflow,前面我也有文章写过怎么在windows下搭建环境,这里你自己去搜一下怎么在liunx下安装anaconda,我不做过多的赘述。
3.1 进入base
首先,我们安装好anaconda后,要进入到anaconda的base下,如果你已经在base下了,那么这一步就可以跳过了。
我这里安装的是anaconda3,因此,从系统环境进入到base下只需要一个命令即可:
source ~/anaconda3/bin/activate
可以看到前面出现了括号,里面是base,这就表示成功了!!
3.2 退出base
从base下退回到系统环境也只需要一个命令即可。
source deactivate
4. 搭建TensorFlow
其实,这里与windows下搭建环境是一样的。
1)你要在base下先创建一个你自己的房间(环境)。
conda create -n your_name python=??
注:要将your-name换成你想要的名字,并确定一下python版本号
出现yes/no,就输入yes即可。
2)进入到创建好的房间
conda activate your_name
3) 下载TensorFlow
tensorflow和tensorflow-gpu的区别,前者需要在CPU中运行,对于硬件条件的要求不高,后者则是需要额外安装 GPU 驱动和 CUDA 工具包,并且只能在支持 GPU 的硬件上运行。这里,我安装的是tensorflow-gpu,如果你的硬件条件不太好,则安装tensorflow即可。
conda install tensorflow-gpu
你也可以像python一样指定你要下载的版本号,这里,我就不指定了。如果你不知道你有哪些版本号,你可以输入下面指令查看:
conda search tensorflow-gpu
5. VSCode连接服务器
5.1 下载
你们可以前去官网,根据你的系统下载VSCode。
5.2 安装
直接无脑安装即可,如果你到了这一步不知道怎么勾选,就按照下面这个进行勾选就行:
注:
1)通过code 打开“操作添加到windows资源管理器文件上下文菜单 :把这个两个勾选上,可以对文件使用鼠标右键,选择VSCode 打开。
2)将code注册为受支持的文件类型的编辑器:不建议勾选,这样会默认使用VSCode打开支持的相关文件,文件图标也会改变。
3)添加到PATH(重启后生效):建议勾选,这样可以使用控制台打开VSCode 了。
5.3 安装插件
在扩展里面搜索Chinese(简体中文)、SSH这两个插件。一个是语言汉化包,另一个是需要远程连接的插件。
安装完SSh后,会出现小电脑的图标:
5.4 添加服务器连接配置
点击添加按钮,输入远程服务器的地址,账号和ip根据自己的情况进行修改,如下图所示:
回车保存刚才输入的信息到配置文件
此时,就可以在SSH TARGETS中看到添加的远程服务器地址了(如果没有,就点上面的刷新):
5.5 连接服务器
右键选择远程服务器,点击在当前窗口中连接(Connect to Host in Current Window):
选择服务器的系统:
如果远程服务器能够连接成功,此时会需要你输入密码:
连接成功,会在左下角显示hot号:
接下来你就打开你保存在该服务器上的代码文件夹即可。
你可以在该软件下开启终端,然后就可以一边编写代码,一边运行程序。
6. 终端运行代码
你可以自己选择,一是在你的远程连接软件上运行终端代码,二是利用我上面说的VSCode中的终端运行代码,这两个都是可以的,用第二种打开能够避免运行的程序不在激活的环境中这种情况。这里我以VSCode进行演示。
1)查看进程
nvidia-smi
在最后一行,你可以看到没有程序正在运行。
2)进入环境
看一看,你的指令前面有没有(base)这个,有就说明你已经进入到base下了,否则,按照第三章所讲进去到base下,然后激活自己的环境。
conda activate your_name
3) 进入程序所在文件夹
你激活环境后,用命令运行py文件时,会发现不能运行,很有可能是没有进入到代码相应文件夹下,你需要通过cd指令进入,如图所示:
4)运行程序
输入下面代码就可以运行程序。
python xxx.py
如果你代码调试成功,并且想挂在后台运行,即使关掉终端也能运行,并且将日志写入记事本中,你可以输入下面代码:
nohup python xxx.py &
你会发现在你的文件夹下会有一个txt文件,这就是日志。
但是这样你关不掉正在运行的程序,你只能杀死进程。
kill -9 PID
这里的PID号可以通过第一个命令nvidia-smi进行查询。