服务器ubuntu16.04配置pytorch环境
刚进入实验室时配置过服务器node1节点,node1节点有4张p100,但是总是被占满,几个月后申请了node2节点,但是完全忘了当时怎么搞的了,遂决定记录下node2的配置过程,为下次节点重装或者其他情况下需要重新配置节省时间。
python环境
服务器上的操作系统是ubuntu16.04,其预装了python2.7和python3.5。
系统自带的python不可以卸载和删除,且系统默认python版本为python2.7,因为python2.7版本过低,所以首先需要更改系统默认的python版本为3.5,由于没有管理员权限,所以只能从用户层面更改系统默认python版本。打开~/.bashrc文件,添加新的别名信息来修改默认使用的 Python 版本。
alias python='/usr/bin/python3.5'
一旦完成以上操作,重新登录或者重新加载 .bashrc 文件,使操作生效。
miniconda安装
配置pytorch环境时,版本之间的相容是一件极其麻烦的事情,cuda,pytorch,torchvision,如果使用tensorboard时还要考虑tensorflow版本兼容的问题,所以很折腾,如果使用系统自带的python的话,就会需要重装很多东西,有些安装需要管理权限,这个时候第一个想到的是使用conda。但是实验室的服务器使用规范上说尽量不要使用conda,因为太占系统盘空间,所以一直没想着用conda。
直到有一次跑代码要装高版本pytorch,忙活一通实在无解,不得已去问师兄要管理员账号。
是的,我也害怕把服务器搞崩了,因为我们之前搞比赛的时候我室友真的把学校超算中心的服务器搞崩过,所以还是用conda吧。
miniconda软件源:
https://repo.continuum.io/archive/
miniconda中会带python,如果想装带着特定版本python的miniconda,需要对照版本信息,就比如miniconda4.2.0自带python3.5,如果你安装此版本miniconda,那么就会一同拥有python3.5,如果对python版本没有特定要求,安装最新版本的miniconda也可以。
一个超级脑残的问题,搜miniconda安装时,看到所有的帖子都在说pythonx.x对应的miniconda版本,我TMD找了半天python3.5对应的miniconda版本,但miniconda为什么会对python版本有要求呢?不是自己带python吗,我最后装了最新版本的py39的,也没见有啥问题。难道说的python对应版本的问题,指的是miniconda里面带的python版本?
miniconda的安装是一件很轻松的事情,总之就是一路enter就可以,conda的初始化信息是写入到~/.bashrc文件中的,所以最好source一下或者重新打开命令行。
conda换源
和pip一样,miniconda作为包管理工具也会有速度过慢,需要换源的问题,以更换清华源为例,有两种方法,第一种是使用conda config指令:
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/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
第二种是直接写入conda的配置文件condarc中:
首先
vim ~/.condarc
而后写入:
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
ssl_verify: true
pytorch安装
conda会自动考虑之前提到的各依赖包的版本兼容问题,所以一般直接conda install pytorch 就可以了,但是我之前使用这方法安装节点1时会碰到一个问题,conda安装的是cpu版本的pytorch,这个时候只是conda install pytorch是不行的,需要在conda指令中指明pytorch版本。
首先使用
conda search pytorch
可以发现所有的可用的pytorch版本:
需要使用指令:
conda install pytorch=x.x=x.x
需要指明要安装的pytorch的Version和Build,例如机器上的python版本是2.7,cuda是7.5,那么你需要使用的指令就是:
conda install pytorch=0.1.12=py27cuda7.5cudnn5.1_1
尾巴
有些时候conda install就是无法解决冲突,安装下一个依赖时会让卸载上一个,这种情况下可以两个依赖使用一条指令安装。实在解决不了的问题,也可以试试pip安装,但是需要注意使用conda自带的pip来安装,否则会使用系统pip,不能作用到到虚拟环境。
大概就是这么多东西,废话有点多。