从零开始的远程服务器跑深度学习(一)
step1.连接学校VPN
这个不必赘述,没有vpn的看看自己学校官网上或者打听师兄师姐。vpn账号有私用的(有人数限制)和公用的(可以一个组一块用),借一个也是不错的选择。
step2.下载MobaXterm并配置
找到官网MobaXterm free Xserver and tabbed SSH client for Windows
我是选择的安装版,如果选择便携版可以参考这个文章mobaxterm怎么使用?MobaXterm使用图文教程_编程开发_软件教程_脚本之家
按照流程安装完毕后,可以看见这样的界面(也有可能是白色的,我这里设置成黑色的)
(被p掉的是服务器ip地址)
虽然图中标注了,还是说一遍,port那里要求填的是端口号,xxx.xxx.xxx.xx:AAAAA,这里面AAAAA就是端口号,把默认的22改成对应的就是(当然如果就是22就不用改了)
(specify usename 的作用我认为起一个标注作用,如果有多个服务器可以区分一下)
回车后显示是否免输密码就是成功了(我没有选择免输)
回车后显示是否免输密码就是成功了。
step3.在服务器上配置环境
如果你有的是一个共有服务器账户,这就意味着极大可能这个账户里已经配好了anaconda,就可以不需要重新下载anaconda。如果你是有自己的服务器账户,基本上一定没anaconda,这时候就得先下载anaconda再配置环境,
1.安装anaconda
服务器都是linux系统的,但是很多指令还是跟windows一样的。对于这部分我看一位博主写得蛮好的:远程服务器安装Anaconda-CSDN博客
然后将anaconda配置进环境里,参考博文远程服务器安装Anaconda并创建conda环境(超详细)-CSDN博客
#1.初始化 conda
source ~/anaconda3/bin/activate
conda init
#2.设置打开终端不自动进入 conda 的 base 环境,即需要自己激活相应的配置
source ~/.bashrc
conda config --set auto_activate_base false #这个是进入终端时不会默认直接进入base环境中
conda config --set auto_activate_base true #这个是进入终端时默认直接进入base环境中
#3.更新一下配置验证是否安装成功
source ~/.bashrc
conda --version
conda env list
如果验证失败,不能查看到conda版本及环境列表,可能是因为在安装中出现了问题,往下走
在bashrc里添加conda环境路径.安装完成后进入到anaconda3/bin文件目录下位置、更新配置文件
cd anaconda3/bin
#然后更新配置文件可选择两种方式
#方式一
#进入bashrc文件内,
nano ~/.bashrc
#按 i 进入编辑状态,在最后一行添加
export PATH="home/{your_name}/anaconda3/bin:$PATH"
#按 esc键 并输入 :wq 保存退出即可
#方式二
#进入bashrc文件内
vim .bashrc
#按 i 进入编辑状态,在最后一行添加
export PATH="home/{your_name}/anaconda3/bin:$PATH"
#按 esc键 并输入 :wq 保存退出即可
更改完配置文件后激活配置文件:
#执行bashrc文件
source ~/.bashrc
#验证一下
conda --version
#正常输出版本号即视为成功
2.创建一个环境
创建一个环境基本公式如下:
conda create -n 名字 python=几点几
这里我要创建一个有pytorch的虚拟环境,名字叫做pytorch39意思就是有pytorch的python3.9:
conda create -n pytorch39 python=3.9
回车,开始下载相关的包:
在最下面那一行输入y,敲回车。下面这种情况就是下载完成了:
中间报错处理:
我的账户在进入MobaXterm后输入conda activate pytorch39就会报错,但是查环境的时候这个环境是存在的。猜测可能是因为进入服务器后并不是默认进入anaconda环境,因此conda指令是无效的。
博主参考了下面这个博文
远程服务器安装Anaconda并创建conda环境(超详细)-CSDN博客
“每次重连服务器需要进入anaconda3/bin文件目录下操作以下步骤即可使用虚拟环境”的部分,也就是每一次需要输入
cd anaconda3/bin
source ~/.bashrc
conda acitvate 虚拟环境名
每次重连都需要这样才能进入虚拟环境)。博文中解释了是服务器启动的时候可能不是直接启动.bashrc,可能是直接启动bash_profile文件 所以我们在~/.bash_profile文件里,添加.bashrc的启动项,更新一下配置就可以进入bash_profile文件。但是有个问题,这种方法应该适用于自己有单独的服务器账号,如果是公用的服务器账号就不能这么搞。不过,如果有公用的服务器账号一般就不需要自己安装一个anaconda再配置环境了,一进来就能进入conda环境了(就没有这个烦恼了)。
解决办法是,
#进入bash_profile文件
vim ~/.bash_profile
#按 i 进入编辑状态输入以下内容:
if [ -n "$BASH_VERSION" ]; then
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
#按 esc 再输入 :wq 方可保存退出,然后激活一下.bash_profile文件配置
source ~/.bash_profile
#激活之后以后每次进入服务器都可以直接配置conda了
#当然如果输乱了想重来重进bash_profile,可以按 esc 再输入 :q! 不保存退出
3.下载pytorch
第一步应该是看自己的服务器支持的CUDA的版本号是多少,因为你选择的pytorch版本号必须不高于服务器的CUDA版本。
查版本号只需要输入:
nvidia-smi
可以看到学校的服务器CUDA version为11.7,也就是说在安装pytorch的时候版本号不能超过11.7,如果是11.7.xx这是可以的.
下面开始配置pytorch,要根据自己的python的版本来选择pytorch的版本。进入官网https://pytorch.org/
这里的cuda版本号都大于11.7了,因此需要看一下过往的版本
Previous PyTorch Versions | PyTorch
然后翻阅一下,选择合适的指令类似于这样的:
开始安装,首先激活你打算安装pytorch的环境,conda activate pytorch39,然后出现类似于:
(pytorch39)xx@xxxxxxx@:
中间报错处理:
1.博主选择了好几个不同版本的cuda11.7 的,要么太慢要么报错。根据网上的建议,博主把那几个清华源全添加上了,但是频频报错。
关于添加清华源报错
UnavailableInvalidChannel: HTTP 404 NOT FOUND for channel anaconda/cloud/conda-f <https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-f>
The channel is not accessible or is invalid.
You will need to adjust your conda configuration to proceed.
Use `conda config --show channels` to view your configuration's current state,
and use `conda config --show-sources` to view config file locations.
博主参考了博文
基于conda安装pytorch---一看就会超稳定安装步骤详解【多次踩坑实践最终成功版!!!】【适用于WIN系统】-CSDN博客
The channel is not accessible or is invalid.You will need to adjust your conda configuration to proc_the channel is not accessible or is invalid. you w-CSDN博客
的建议,首先删掉国内镜像资源:
conda config --remove-key channels
然后再检查好是否有默认的安装源:
conda config --show channels
当出现channels--default算验证通过。最后博主选择了下面这个版本的pytorch:
conda install pytorch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.7 -c pytorch -c nvidia
2.博主不小心按了ctrl+c导致中间下载过程中强制退出,导致后面重新安装会出错。
参考博文(净化anaconda)conda install 中途打断出现ERROR REPORT_error report <<<<<<<<<<<<<<<<<<<<<< traceback (mos-CSDN博客
输入:
conda clean --tarballs
再安装 conda install pytorch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.7 -c pytorch -c nvidia
这样就算成功了。
报错说完了,继续。。。。。。
安装成功后验证一下是否能正常使用,代码部分参考博文【CUDA】【PyTorch】安装 PyTorch 与 CUDA 11.7 的详细步骤_cuda11.7-CSDN博客
#首先进入python
python
import torch
# 检查 PyTorch 是否可以使用 GPU
print("CUDA Available:", torch.cuda.is_available())
print("CUDA Device Count:", torch.cuda.device_count())
print("Current CUDA Device:", torch.cuda.current_device())
print("Current Device Name:", torch.cuda.get_device_name(torch.cuda.current_device()))
print(torch.__version__)
最后输入
exit()
再回车就可以退出python了。
step4.在PyCharm上配置服务器属性
我们的目标是可以使用自己的电脑的PyCharm进行代码和文件的管理。
详情可以参考这个up主的视频:
【Pycharm连接GPU云服务器进行深度学习超详细教程!💻】 https://www.bilibili.com/video/BV1ZN411J7jy/?share_source=copy_web&vd_source=404581381724503685cb98601d6706fb
第一步:
只有PyCharm专业版 Professional才能远程连接服务器,如果只有社区版可以自行升级,如果嫌麻烦可以直接从某宝上买一个专业版的激活码,让商家直接远程给你激活。
安装完以后,打开PyCharm,进行以下操作
到这里别急着点确定,还需要继续配置“映射”。当然了,如果点了确定也没关系,退出以后再点开“工具”--->“部署”--->“配置”,点开没配完的服务器设置。
服务器映射以及后面的设置部分参考了博文小白都能看懂的连接实验室服务器环境配置 & PyCharm连接服务器攻略_pycharm链接服务器环境-CSDN博客
step5.打开PyCharm连接并管理服务器终端
博主是深度学习方面的,连接服务器是为了复现论文代码,根据【研0和研1如何快速找论文并复现代码】 https://www.bilibili.com/video/BV1z2421c7db/?share_source=copy_web&vd_source=404581381724503685cb98601d6706fb
的up介绍的,先跑通代码再精读论文。
首先在服务器上创建一个环境,在服务器上可能有很多别人的环境,但是不要用,因为如果动了别人环境的配置可能人家那边的程序就报错了,所以还是自己需要就自己多创建几个。
创建环境就是在MobaXterm界面的base的后面输入:
conda create -n 名字 python=几点几
然后查看自己环境的位置(如果没有自己的服务器账号这个务必要记录下来),查看所有环境(找到自己的环境就可以看到它在服务器中的位置了):
conda info -e
根据论文的“代码可用性”那里提供的链接(一般都有这个版块),点开对应的github,注意这里得挂梯子。然后按照up的视频一步一步来。
对于配置好以后,视频中说直接从打开终端,不过因为我是挂的vpn在学校的服务器上跑程序,也没有像up主那样搞了一个远程桌面,因此此时我的本地指的是自己电脑的环境,而不是我在服务器上创建好了的文件夹。本着试一试的态度,先打开终端,然后:
(这里为了保护博主隐私服务器打码了哈)
然后
而对于复现论文要求pip3 install -r requirements.txt的指令,在输入
pip3 install -r requirements.txt
以后,报错
ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'
根据博文安装依赖包 requirements.txt ERROR: Could not open requirements file: [Errno 2] No such file or direct;-CSDN博客
应该要么进入那个文件夹,
cd <文件夹的绝对路径(可以鼠标右键找到)>
要么具体写明白这个txt文件的位置,而且是在服务器中的具体位置。上面我们已经将需要的文件导入服务器当中了,只需要打开服务器,找到那个文档所在的位置:
然后,再在服务器终端里输入
pip install -r"/你那个服务器的文件夹而且父子文件夹用“/”隔开/requirements.txt"
或在PyCharm里,点找文件
然后执行cd 复制好的路径,再执行pip3 install -r requirements.txt
step6:传输文件和数据
虽然打开mobaxterm直接将点上传文件就可以,但是个人觉得还是用Xftp更方便一点。
虽然官网上说必须是跟xshell一块下载,不过我也没下载xshell,用xftp还是正常用。
官网:XFTP - NetSarang Website
点击下载,然后选择家庭免费版,自主安装即可。
先写到这