zoukankan      html  css  js  c++  java
  • Linux服务器配置GPU版本的pytorch Torchvision 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,不过并不影响后续使用)

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

  • 相关阅读:
    深入理解计算机系统 第七章
    第七周 可执行程序的卸载
    Linux内核设计与实现 第三章
    第六周 进程的描述和进程的创建
    第五周 扒开系统调用的三层皮(下)
    UIWebView和Js交互
    CocoaPods的版本升级
    ios图片添加文字或者水印
    Objective-C 关联
    NSString进行urlencode编码
  • 原文地址:https://www.cnblogs.com/TimberNie/p/12200424.html
Copyright © 2011-2022 走看看