PaddlePaddle从入门到炼丹——环境搭建与安装

前言

本章介绍如何安装PaddlePaddle的新版本,特别是Fluid版本。Fluid设计的目标是让用户能够像使用PyTorch和TensorFlow Eager Execution一样执行程序。在这些系统中,不再有“模型”的概念,应用也不再包含描述Operator图或层序列的符号化描述,而是像通用程序一样描述训练或预测过程。因此,PaddlePaddle从Fluid版本开始采用动态图机制,本系列教程也基于Fluid版本编写。

环境要求

  • 系统:64位Windows 10专业版、64位Ubuntu 16.04
  • Python环境:Python 3.5
  • 内存:8G

Windows下安装

安装Python

  1. 下载Python 3.5
    本系列使用Python 3.5,官方支持Windows系统的Python版本包括2.7.15、3.5.x、3.6.x和3.7.x。读者可根据需求选择版本,官网下载地址:
    https://www.python.org/downloads/windows/
    推荐直接下载Python 3.5.4 64位安装包:
    https://www.python.org/ftp/python/3.5.4/python-3.5.4-amd64.exe

  2. 安装Python并配置环境变量
    双击安装包,勾选“Add Python to PATH”,点击“Install Now”完成安装。

  3. 验证Python安装
    打开Windows PowerShellcmd,输入命令python -V,若显示Python版本则安装成功。

安装PaddlePaddle

PaddlePaddle支持Windows后,安装非常简单,一条命令即可完成。

CPU版本安装

Windows PowerShell中执行:

pip3 install paddlepaddle==1.4.1 -i https://mirrors.aliyun.com/pypi/simple/

GPU版本安装(需CUDA 8.0+cuDNN v7)

pip3 install paddlepaddle-gpu==1.4.1 -i https://mirrors.aliyun.com/pypi/simple/

验证安装

Windows PowerShell中输入python,进入Python环境后执行:

import paddle.fluid

若无报错,证明安装成功。

Ubuntu下安装

安装Python(通常无需单独安装)

Ubuntu 16.04默认预装Python 3.5,若需指定版本:

sudo apt install python3.5
sudo apt install python3.5-dev

安装PaddlePaddle

CPU版本安装

在终端(Ctrl+Alt+T)执行:

pip3 install paddlepaddle==1.4.1 -i https://mirrors.aliyun.com/pypi/simple/

GPU版本安装(需CUDA 9.0+cuDNN 7)

  1. 先安装CUDA和cuDNN(参考Ubuntu安装和卸载CUDA和CUDNN
  2. 安装PaddlePaddle GPU版本:
pip3 install paddlepaddle-gpu==1.4.1.post97 -i https://mirrors.aliyun.com/pypi/simple/

验证安装

在终端执行python3,进入Python环境后执行:

import paddle.fluid

若无报错,证明安装成功。

源码编译安装

Windows下源码编译

环境准备

  1. 安装Visual Studio 2015 Update3
    下载地址:https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/
    需加入免费Dev Essentials计划以获取下载权限。

  2. 安装CMake 3.13
    下载地址:https://cmake.org/download/,安装时勾选“Add CMake to system PATH”。

  3. 安装依赖库

pip3 install numpy protobuf wheel
  1. 安装Git
    下载地址:https://git-scm.com/downloads,默认安装即可。

编译步骤

  1. 克隆PaddlePaddle源码
git clone https://github.com/PaddlePaddle/Paddle.git
cd Paddle
  1. 切换到稳定分支(以release/1.2为例):
git checkout release/1.2
  1. 创建并进入build目录
mkdir build && cd build
  1. 配置编译参数(仅CPU版本):
cmake .. -G "Visual Studio 14 2015 Win64" -DPY_VERSION=3.5 -DWITH_FLUID_ONLY=ON -DWITH_GPU=OFF -DCMAKE_BUILD_TYPE=Release
  1. 下载第三方依赖
    https://github.com/wopeizl/Paddle_deps下载third_party文件夹,放入build目录。

  2. 编译
    使用Visual Studio 2015打开paddle.sln,选择x64Release配置,开始编译。

  3. 安装生成的.whl包
    paddle/build/python/dist目录中找到.whl文件,执行:

pip3 install (whl包名称)

Ubuntu下源码编译

安装依赖

  1. 安装OpenCV
sudo apt update
sudo apt-get install cmake build-essential libgtk2.0-dev
wget https://github.com/opencv/opencv/archive/3.4.5.zip
unzip 3.4.5.zip
cd opencv-3.4.5
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j$(nproc)
sudo make install
  1. 安装编译工具链
sudo apt install python3.5-dev swig patchelf
pip3 install numpy protobuf wheel

编译步骤

  1. 克隆源码并切换分支
git clone https://github.com/PaddlePaddle/Paddle.git
cd Paddle
git checkout release/1.4
  1. 配置编译参数(CPU版本):
mkdir build && cd build
cmake .. -DPY_VERSION=3.5 -DWITH_FLUID_ONLY=ON -DWITH_GPU=OFF -DCMAKE_BUILD_TYPE=Release
  1. 编译
make -j$(nproc)
  1. 安装生成的.whl包
cd python/dist
pip3 install (whl包名称)

Ubuntu Docker编译

通过Docker编译生成的安装包仅适用于Ubuntu系统,步骤如下:

  1. 安装Docker
sudo apt install docker-ce
sudo systemctl restart docker
sudo docker run hello-world  # 验证安装
  1. 编译PaddlePaddle
git clone https://github.com/PaddlePaddle/Paddle.git
cd Paddle
# CPU版本编译
sudo docker run --name paddle-test -v $PWD:/paddle -it hub.baidubce.com/paddlepaddle/paddle:latest-dev /bin/bash
cd paddle && git checkout release/1.4 && mkdir build && cd build
cmake .. -DPY_VERSION=3.5 -DWITH_FLUID_ONLY=ON -DWITH_GPU=OFF -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
pip3 install build/python/dist/*.whl

测试环境

使用PyCharm或VS Code创建Python项目,选择系统Python环境(Python 3.5),编写测试代码:

import paddle.fluid as fluid
import numpy as np

# 定义简单神经网络
def test_net():
    x = fluid.layers.data(name='x', shape=[13], dtype='float32')
    y = fluid.layers.fc(input=x, size=1, act=None)
    place = fluid.CPUPlace()
    exe = fluid.Executor(place)
    data = np.random.rand(10, 13).astype('float32')
    result = exe.run(fluid.default_main_program(), feed={'x': data}, fetch_list=[y])
    print("Test output shape:", result[0].shape)

if __name__ == '__main__':
    test_net()

输出示例:

Test output shape: (10, 1)

参考资料

  1. PaddlePaddle官方安装文档
  2. Windows安装指南
  3. Ubuntu CUDA安装指南

下一章:《PaddlePaddle从入门到炼丹》二——计算1+1

项目代码GitHub地址:https://github.com/yeyupiaoling/LearnPaddle2/tree/master/note1


注意:最新代码以GitHub仓库为准。

Xiaoye