欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux服务器配置GPU版本的pytorch Torchvision TensorFlow

程序员文章站 2022-04-29 13:02:11
Linux服务器下运行同时包含CPU和GPU版本TensorFlow的项目,对于GPU版本,首先使用Anaconda建立GPU环境,首先将本地环境同步到服务上,再卸载cpu版本的pytorch和TensorFlow,下载GPU版对应版本的pytorch和TensorFlow。执行不同版本项目时,只需... ......

  最近在linux服务器上配置项目,项目需要使用gpu版本的pytorch和tensorflow,而且该项目内会同时使用tensorflow的gpu和cpu。

  在服务器上装环境,如果重新开始,就需要下载很多依赖包,而且如果直接在系统上安装包,可能会和服务器上的其他包发生冲突,因此使用anaconda创建虚拟环境来管理项目的依赖包。anaconda的安装可以去清华大学的镜像下载,速度比较快,选择对应的版本就可以了  https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 。我需要下载python3.6对应的anaconda可以对照下面这张图片来查看,选择anaconda3-5.2.0版本就可以了。(但是其实我下载成了anaconda2,不过并不影响后续使用)Linux服务器配置GPU版本的pytorch Torchvision TensorFlow

  anaconda下载之后会在~/.bashrc中添加一条环境变量。如果首次运行conda命令找不到,就source ~/.bashrc。

  配置好anaconda后,如果要创建虚拟环境,重新下载包也需要很麻烦的操作,而且需要对照以前的项目进行一一下载。这太捞了,我们考虑直接将本地项目的anaconda环境打包好上传到服务器上,就可以使用本地的虚拟环境了。具体做法是,首先到本地的anaconda环境目录下,我的是/home/timber/anaconda2/envs ,这个目录下就是用户创建的anaconda环境。直接打包 

tar -cvf name.tar your_env_name/

 然后将这个文件用scp上传到服务器下的(anaconda2_dir)/envs下,

scp name.tar remote_username@remote_ip:anaconda_dir/envs

接着在服务器的anaconda的envs目录下解压name.tar

tar -xvf name.tar

 环境就移植到服务器上了,可以在服务器上通过conda env list检验是否有我们刚移植的环境。

  本地安装的环境是cpu版本的pytorch和tensorflow,首先将pytorch卸载

conda activate project #激活环境
conda uninstall pytorch

 然后去清华大学的镜像下下载pytorch(因为官方下载超级慢)。需要首先配置清华大学镜像。

依次运行以下命令

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的,那么应该如何设置?