最近在Linux服务器上配置项目,项目须要使用GPU版本的pytorch和TensorFlow,并且该项目内会同时使用TensorFlow的GPU和CPU。python
在服务器上装环境,若是从新开始,就须要下载不少依赖包,并且若是直接在系统上安装包,可能会和服务器上的其余包发生冲突,所以使用Anaconda建立虚拟环境来管理项目的依赖包。Anaconda的安装能够去清华大学的镜像下载,速度比较快,选择对应的版本就能够了 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 。我须要下载python3.6对应的Anaconda能够对照下面这张图片来查看,选择Anaconda3-5.2.0版本就能够了。(可是其实我下载成了anaconda2,不过并不影响后续使用)bash
Anaconda下载以后会在~/.bashrc中添加一条环境变量。若是首次运行conda命令找不到,就source ~/.bashrc。服务器
配置好Anaconda后,若是要建立虚拟环境,从新下载包也须要很麻烦的操做,并且须要对照之前的项目进行一一下载。这太捞了,咱们考虑直接将本地项目的anaconda环境打包好上传到服务器上,就可使用本地的虚拟环境了。具体作法是,首先到本地的Anaconda环境目录下,个人是/home/timber/anaconda2/envs ,这个目录下就是用户建立的anaconda环境。直接打包 app
tar -cvf name.tar your_env_name/
而后将这个文件用scp上传到服务器下的(anaconda2_dir)/envs下,测试
scp name.tar remote_username@remote_ip:anaconda_dir/envs
接着在服务器的anaconda的envs目录下解压name.tarurl
tar -xvf name.tar
环境就移植到服务器上了,能够在服务器上经过conda env list检验是否有咱们刚移植的环境。插件
本地安装的环境是cpu版本的pytorch和TensorFlow,首先将pytorch卸载命令行
conda activate project #激活环境 conda uninstall pytorch
而后去清华大学的镜像下下载pytorch(由于官方下载超级慢)。须要首先配置清华大学镜像。orm
依次运行如下命令blog
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
上面三条是配置清华镜像源,下面一条是配置pytorch源。而后去到官网,选择你对应的pytorch版本,找到下载命令,好比,最新版本的Pytorch在cuda10下面的官方下载命令是
conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
可是,不要用这条命令,因为添加了镜像源,咱们去掉上面命令的-c pytorch,运行
conda install pytorch torchvision cudatoolkit=10.1
就能够用清华镜像下载了。若是要下载历史版本的pytorch,以1.0为例,就用
conda install pytorch==1.0 torchvision cudatoolkit=10.1 -c pytorch
安装好以后,torchvision不必定能配套使用,由于Torch已经更换了,因此可能会存在版本不一致的问题,卸载torchvision,而后下载对应版本的torchvision。
出现的第一个问题是torchvision下没有totensor,重装0.2.0的torchvision。
第二个问题是This application failed to start because it could not faind or load the Qt platform plugin "xcb" in "".
Reinstalling the application may fix the problem.这个提示告诉咱们在Qt平台插件中找不到XCB,提示咱们重装,那咱们就重装呗,重装pyqt
conda uninstall pyqt conda uninstall qt conda install pyqt
个人项目使用了GPU版本的Tensorflow,须要装GPU版本的TensorFlow。
这里还有个问题是,人脸识别和车辆检测都使用了TensorFlow,一个是CPU版本,一个是GPU版本,会有冲突吗。TensorFlow的GPU版本是能够跑cpu的,因此先把以前的TensorFlow卸载掉。下载了GPU版本的
conda install tensorflow-gpu==1.12.0
可是这里同时下载了cuda的9.0的toolkit,以前下载torch的时候使用了cuda10的toolkit,不知道会怎么样。测试以后发现没有冲突。
如今在这个项目下,有一个GPU的版本,有一个cpu的版本,同时也有两套对应的anaconda环境与之对应,当执行GPU版本时,须要切换到anaconda的GPU环境。这种切换能够是在命令行中
conda activate gpu
也能够是在pycharm中进行project intepreter设置,选中anaconda/envs/project/bin/python3.6,就是选中了该环境。
至此,还剩最后一个问题,GPU版本的TensorFlow是默认使用gpu版本,可是GPU版本的项目有一块是须要使用cpu版本的tensorflow的,那么应该如何设置?