Home Ubuntu18.04安装并配置PaddlePaddle
Post
Cancel

Ubuntu18.04安装并配置PaddlePaddle

记录一次在Ubuntu18.04系统安装PaddlePaddle的过程经历。

Ubuntu18.04 安装PaddlePaddle

环境配置

1.首先确认依赖项的安装,根据Paddle官方页面给出的信息,Ubuntu18.04只支持CUDA10.0/10.1(不支持CUDA10.2)

在NVIDIA开发者页面下载CUDA10.1

  • 选择最新的CUDA10.1 update2

  • 安装平台选择Linux,x86_64,Ubuntu,18.04,runfile

  • 在终端输入以下指令

    1
    2
    
    wget http://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run
    sudo sh cuda_10.1.243_418.87.00_linux.run
    

    下载会花一些时间

  • 等下载完后运行.run文件,打开安装界面

  • 如果已经安装过NVIDIA driver并且版本在418.39以上(参考https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#abstract),可以不选择driver的安装,其他都勾选上

  • 上一步中,如果没有安装driver,安装完成会提示没有安装CUDA toookit中的driver,但是没有关系,通过nvcc -V命令或者nvidia-smi命令都可以看到CUDA和driver已经安装好的版本号

2.下一步安装cudnn,PaddlePaddle要求CUDA10.1的cudnn对应为7.3+,这里选择安装最新的cudnn7.6.5,注意要CUDA10.1的版本

  • 这里有两种选择方式,一种是旧版的tgz压缩包安装,另一种是新版的deb包安装

    • 选择cuDNN Library for Linux下载压缩包

      进入下载路径解压,并进入文件夹

      1
      
      tar -zxvf cudnn-10.1-linux-x64-v7.6.5.32.tgz
      

      将下列文件拷贝到CUDA Toolkit的路径下

      1
      2
      3
      
      sudo cp cuda/include/cudnn.h /usr/local/cuda/include
      sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
      sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
      
    • 或者选择cuDNN Runtime Library for Ubuntu18.04 (Deb)下载deb包

      进入下载路径,安装deb包

      1
      
      sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb
      

      验证cudnn是否安装成功

如果上一步用的是tgz安装,查看cudnn版本:

1
2
3
```
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
```

如果上一步用的是deb安装,查看cudnn版本:

1
2
3
```
dpkg -l | grep cudnn
```

到此为止PaddlePaddle所需要的依赖项都安装完成,重启Linux使安装生效(否则安装完PaddlePaddle可能会提示没有GPU)

回到PaddlePaddle的官方页面选择安装方式,选用Ubuntu+pip+python3+CUDA 10

  • 执行pip3安装PaddlePaddle

    1
    
      python3 -m pip install paddlepaddle-gpu==1.7.1.post107 -i https://mirror.baidu.com/pypi/simple
    

    如果人在海外可以不加源地址,不指定paddlepaddle版本号,速度也很快

    1
    
      python3 -m pip install paddlepaddle-gpu
    
  • 安装完成后进入python3界面验证是否安装完成

    1
    2
    
      >>> import paddle.fluid
      >>> paddle.fluid.install_check.run_check()
    

    如果出现Your Paddle Fluid is installed successfully!,则安装成功

    如果在import时提示Compiled with WITH_GPU, but no GPU found in runtime.,很有可能是安装完CUDA和cudnn后没有重启,重启过后即可成功验证

PaddleSeg配置实践

安装下载

  • PaddlePaddle安装 https://www.paddlepaddle.org.cn/install/quick

  • PaddleSeg库文件 https://github.com/PaddlePaddle/PaddleSeg

    1
    
      git clone https://github.com/PaddlePaddle/PaddleSeg
    

    用百度的AI Studio克隆仓库速度比较慢,本地克隆很快

  • PaddleSeg依赖

    通过以下命令安装python包依赖,因为本地环境同时存在python2和3两个版本,之前安装PaddlePaddle是通过python3安装,所以这里用pip3安装依赖(基本在PaddlePaddle安装的时候已经装过了)

    1
    2
    
      cd PaddleSeg
      pip3 install -r requirements.txt
    

    ※ 这里安装的时候PyYAML出现如下提示

    1
    
      ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall
    

    解决方案:

    1
    
      sudo -H pip3 install --ignore-installed PyYAML
    

测试运行

  • 这里直接使用PaddleSeg提供的预训练模型进行测试 https://github.com/PaddlePaddle/PaddleSeg/blob/release/v0.4.0/docs/model_zoo.md

    1
    2
    
    cd PaddleSeg/prertrained_model
    python3 download_model.py fast_scnn_cityscapes
    

    fast_scnn_cityscapes可以换成其他模型,在model zoo中进行选择

  • 下载cityscapes数据集

    1
    2
    
    cd PaddleSeg/dataset
    python3 download_cityscapes.py
    
  • 导出预训练模型

    1
    2
    
    cd PaddleSeg/pdseg
    python3 export_model.py --cfg configs/cityscape_fast_scnn.yaml TEST.TEST_MODEL pretrained_model/fast_scnn_cityscapes
    
  • Python预测部署 https://github.com/PaddlePaddle/PaddleSeg/tree/release/v0.4.0/deploy/python

    在终端输入以下命令:

    1
    2
    
    cd PaddleSeg
    python3 deploy/python/infer.py --conf=freeze_model/deploy.yaml --input_dir=/path/to/dataset --use_pr=False
    

    最后一个参数是是否使用优化,详见https://github.com/PaddlePaddle/PaddleSeg/tree/release/v0.4.0/deploy/python

  • 模型只接受.jpg和.jpeg后缀的图片,数据集如果是.png格式需要将图片的后缀都改成.jpg 在终端输入以下命令

    1
    
    ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.png}.jpg"'
    

    命令选项的说明:

    1
    2
    3
    4
    
    -1 -告诉 ls 每行列出一个图像名称的选项标识
    -n – 指定最多参数个数,例子中为 1
    -c – 指示 bash 运行给定的命令
    ${0%.png}.jpg – 设置新转换的图像文件的名字,% 符号用来删除源文件的扩展名
    

    (Ai Studio不能使用convert,不能转换)

This post is licensed under CC BY 4.0 by the author.