我们在跑深度学习代码时一般都要用gpu加速训练,我们自己的电脑上没有gpu,所以需要连接实验室的服务器(服务器是linux系统),然后将代码传到服务器上运行,下面的方法都要保证本地电脑与服务器在一个局域网内。
如果你的电脑是Linux系统,那么恭喜你,直接用在终端输入
ssh 服务器ip地址
就可以连上服务器
如果你使用的是windows,就需要下载相应的软件,一种是MobaXterm,一种是Xshell6(Xttp是传输文件时要用的),选择任意一个下载就好
在这里我选用的是上面的MobaXterm,打开该软件后新建会话(Session),用ssh连接,输入服务器Ip地址,和你的用户名,最后点击确定
进入后就要输入一下自己服务器用户的密码,然后就可以进入到自己的home/用户名/下,要注意自己没有root权限安装一些文件,所以一般安装文件比较复杂。
如果自己的电脑和服务器不在同一个局域网内,我们需要远程控制,可以使用teamviewer或者向日葵。
首先安装Miniconda3,我之前使用的是Ananconda3,其实Miniconda3与Anaconda3的命令相同,是一个更轻量级的Aanaconda,安装速度也更快。
在自己的本地电脑上下载服务器所要的Miniconda安装包,然后上传到服务器上进行安装。在官网或者清华源上下载对应服务器版本的Miniconda3,我选择的是linux版本x64_64。
下载完成是一个.sh文件,然后上传到自己的服务器目录下,可以在MobaXterm中点击上传小图标即可上传文件
在服务器上进入上传的Miniconda目录下,用bash运行.sh文件
bash Minconda3-latest-Linux-x86_64.sh # 安装miniconda
最后init选择yes,即可将miniconda添加到环境变量中,环境变量在.bashrc中,是一个隐藏文件,一般在/home/用户名/ 目录下
ls -a # 查看当前目录所有文件
打开.bashrc(可以使用vi),在.bashrc最下方我们可以看到conda initialize的语句块就代表成功添加环境变量
如果要对.bashrc进行修改,记着修改完之后运行下面的命令来激活环境变量。
source .bashrc # 激活环境变量
安装完之后目录下也多出了miniconda3的文件夹,
用conda创建虚拟环境是conda很好的用法,因为每一个深度学习项目用的不同的框架,如pytorch,tensorFlow,caffe等,并且有些包的版本也有着严格要求。
我们需要为每一个项目建立一个独立的虚拟环境,在各自的虚拟环境里安装其需要的包,这样可以保证各个代码运行的环境不产生冲突。虚拟环境的名字就是最终端前面()里面显示的。
我们现在可以看到终端最前面有(base)的符号,代表现在在conda最基本的环境中,我们可以输入
conda list # 查看当前环境安装的包
创建一个名为py37_torch的虚拟环境,代表我运行的项目需要用Python3.7,pytorch框架,名字可以自行定义;最后是Python的版本,可以自己选择。
conda create -n py37_torch python=3.7 # 创建虚拟环境
我们可以创建多个不同的虚拟环境
列出所有环境
conda env list # 查看环境列表
每次跑程序时,先要激活相应的虚拟环境,激活后最前面小括号中就会显示当前所在的虚拟环境的名字
conda activate py37_torch # 激活虚拟环境py37_torch
直接使用以下命令可以退出当前虚拟环境
conda deactivate # 退出虚拟环境
conda env remove -n py37_torch # 删除名为py37_torch的虚拟环境
conda --version
或者conda -V
# 获取版本号
# 检查更新当前conda
conda update conda
#查看–安装–更新–删除包
conda search package_name# 查询包
conda install package_name
conda install package_name=1.5.0
conda update package_name
conda remove package_name
自己的程序通常包含了许多包,我们需要将他们全部装好程序才能正确运行,首先查看现有的包
conda list
安装第三方包时可以采用conda 安装:
conda install package_name
我们可以在pypi网站输入自己的包的名字查看对应的命令
pip install package_name
也可以在该网站上下载离线安装包,使用pip安装
在用conda或者pip进行安装时发现速度十分地慢,我们可以添加清华镜像源,使用以下命令,添加channel
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --set show_channel_urls yes
conda config --get channels
添加的channel可以在/home/用户名/ 下的.condarc进行查看
安装cuda时踩了许多坑,说多了都是泪呀
每个人需要安装的cuda版本可能都不同,要看自己的服务器gpu版本决定。
看了一些教程,说要首先安装驱动什么的,然而我不是root用户,装驱动一般不可能,所以直接装cuda
首先用命令
nvidia-smi
可以看到我们的nivdia驱动版本和cuda版本
但是我试了cuda10.1安装失败,安装cuda10.0是成功的。
首先进入Nvidia网站下载安装包,这个页面比较难找,尽量收藏一下,之后可能还要安装其他版本的cuda
我们直接下载相应的cuda安装包进行安装
cat /etc/lsb-release # 查看发行版本
arch # 查看系统架构
我们再安装cuda之前在/home/用户名/
下创建文件夹cuda-10.0,一会儿将cuda10.0安装在此目录下,不要安装在默认路径下,因为没有权限。之后如果要安装其他版本的cuda,可以创建多个‘’cuda-版本‘’ 文件夹
mkdir cuda-10.0 # 安装之前创建安装文件夹
sh cuda_10.0.130_410.48_linux.run
安装时首先一直按空格运行到100%然后选择
-----------------
Do you accept the previously read EULA?
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 430.40?
(y)es/(n)o/(q)uit: n #不需要安装驱动
Install the CUDA 10.0 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
[ default is /usr/local/cuda-10.0 ]: /home/wanggexuan/cuda-10.0
#不要安装在user目录下,没有权限;安装在刚刚创建的cuda-10.0目录下
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: n
Install the CUDA 10.0 Samples?
(y)es/(n)o/(q)uit: n
Installing the CUDA Toolkit in /home/wanggexuan/cuda-10.0 ...
进入cudnn网页下载对应cuda版本的cudnn,首次下载需要注册一下,用邮箱注册一下就好了
直接选择linux版本
下载好后文件名是cudnn-10.0-linux-x64-v7.6.4.38.tgz,
tar -zxvf cudnn-10.0-linux-x64-v7.6.4.38.tgz
cp cuda/include/cudnn.h /home/wanggexuan/cuda-10.0/include/
cp cuda/lib64/libcudnn* /home/wanggexuan/cuda-10.0/lib64
chmod a+r cuda/include/cudnn.h cuda/lib64/libcudnn*
将cuda加入到环境变量中去,在.bashrc最后添加上
export PATH="$PATH:/home/wgx/cuda-10.0/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/wgx/cuda-10.0/lib64/"
export LIBRARY_PATH="$LIBRARY_PATH:/home/wgx/cuda-10.0/lib64"
最后更新系统环境变量
source .bashrc
nvcc -V # 或者 nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130
如果我们想要换他版本的cuda,只需要将上述环境变量.bashrc目录换掉,然后在source一下就好了
安装pytorch也有许多坑
由于pytorch官网中最新的版本没有支持cuda10.0的,所以我在pytorch之前版本的页面上安装之前的pytorch版本
**注意,有坑!**我要安装的是pytorch1.0.0,linux,cuda100的版本,按照下面给出的用conda命令装根本装不上,超级慢,最终显示http error
查了许多资料,说去掉-c pytorch,添加清华镜像源下载,但是还是安装不上,显示在这几个channel中找不到包
最终我在清华镜像网站上才看到
好吧,那么现在还是老老实实下载torch离线包,使用离线安装,在刚刚pytorch网页上最下方可以进入对应cuda的下载页面,下载对应版本的torch whl文件
我选择的是torch1.0.0,python37,linux版本
下载好后,直接用pip进行安装
pip install torch-1.0.0-cp37-cp37m-linux_x86_64.whl
查看是否安装成功,进入python
> import torch 不报错
> torch.cuda.is_available()
显示True
我装的版本是0.2,较高版本安装不上,torchvision的安装是在pypi网站上用pip进行安装的,很方便
安装好后可以用conda list,查看是否安装成功
conda list