首页 Paddle框架 帖子详情
学习之路(1)PaddlePaddle的安装
收藏
快速回复
Paddle框架 文章深度学习模型训练 61541 21
学习之路(1)PaddlePaddle的安装
收藏
快速回复
Paddle框架 文章深度学习模型训练 61541 21

目录
环境
Windows系统的安装在Windows上安装Docker容器
在Windows上安装Ubuntu
使用pip安装
使用Docker安装
从源码编译生成安装包在本地编译生成安装包
在Docker编译生成安装包
编译Docker镜像
测试安装环境
最后提示
项目代码
参考资料


环境

系统:Ubuntu 16.0.4(64位)
处理器:Intel(R) Celeron(R) CPU
内存:8G

Windows系统的安装

PaddlePaddle目前还不支持Windows,如果读者直接在Windows上安装PaddlePaddlePaddle的话,就会提示没有找到该安装包。如果读者一定要在Windows上工作的话,笔者提供两个建议:一、在Windows系统上使用Docker容器,在Docker容器上安装带有PaddlePaddle的镜像;二、在Windows系统上安装虚拟机,再在虚拟机上安装Ubuntu。

在Windows上安装Docker容器
首先下载Docker容器的工具包DockerToolbox,笔者使用这个安装包不仅仅只有Docker,它还包含了VirtualBox虚拟机,使用者工具包我们就不用单独去安装VirtualBox虚拟机了,DockerToolbox的官网下载地址:

https://docs.docker.com/toolbox/toolbox_install_windows/
1
下载之后,就可以直接安装了,双击安装包,开始安装

选择安装路径,笔者使用默认的安装路径

然后安装所依赖的软件,因为笔者之前在电脑上已经安装了git,所以在这里就不安装了,其他都要勾选

这一步不用修改什么,让程序为我们创建一个桌面快捷键

最后就可以安装了,等待一小段时间即可

到这里就安装完成了

安装完成之后,如果直接启动Docker的话,有可能可能会卡在这里,因为还有下载一个boot2docker.iso镜像,网速比较慢的话就可能一直卡在这里。所以我们还要镜像下一步操作

(default) No default Boot2Docker ISO found locally, downloading the latest release...
(default) Latest release for github.com/boot2docker/boot2docker is v17.12.1-ce
(default) Downloading C:\Users\15696\.docker\machine\cache\boot2docker.iso from https://github.com/boot2docker/boot2docker/releases/download/v17.12.1-ce/boot2docker.iso...


在下载DockerToolbox的时候,这个工具就已经带有boot2docker.iso镜像了。并且存在DockerToolbox安装的路径上,笔者的路径是:

C:\Program Files\Docker Toolbox\boot2docker.iso
我们把这个镜像复制到用户目录\.docker\machine\cache\,如笔者的目录如下:

C:\Users\15696\.docker\machine\cache\
复制完成之后,双击桌面快捷方式Docker Quickstart Terminal,启动Docker,命令窗口会输出以下信息:

Running pre-create checks...
Creating machine...
(default) Copying C:\Users\15696\.docker\machine\cache\boot2docker.iso to C:\Users\15696\.docker\machine\machines\default\boot2docker.iso...
(default) Creating VirtualBox VM...
(default) Creating SSH key...
(default) Starting the VM...
(default) Check network to re-create if needed...
(default) Windows might ask for the permission to create a network adapter. Sometimes, such confirmation window is minimized in the taskbar.
(default) Found a new host-only adapter: "VirtualBox Host-Only Ethernet Adapter #3"
(default) Windows might ask for the permission to configure a network adapter. Sometimes, such confirmation window is minimized in the taskbar.
(default) Windows might ask for the permission to configure a dhcp server. Sometimes, such confirmation window is minimized in the taskbar.
(default) Waiting for an IP...


最后看到Docker的logo就表示成功安装Docker容器了

 

                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/

docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com

Start interactive shell

15696@ɵ MINGW64 ~
$


到这就可以使用Docker来安装PaddlePaddle了,具体请看本文章中关于Docker使用PaddlePaddle部分

在Windows上安装Ubuntu
在Windows上在Ubuntu就要先安装虚拟机,虚拟机有很多,笔者使用的是开源的VirtualBox虚拟机,VirtualBox的官网:

https://www.virtualbox.org/
安装完成VirtualBox虚拟机之后,进入到VirtualBox虚拟机中点击新建,创建一个系统

选择分配的内存,我这里只是分配了2G,如果正式使用PaddlePaddle训练模型,这远远不够,读者可以根据需求分配内存

创建一个虚拟硬盘

选择默认的VDI硬盘文件类型

这里最好是选择动态分配硬盘,这样虚拟机会根据实际占用的空间大小使用电脑本身的磁盘大小,这样会减少电脑空间的占用率的。如果是固定大小,那么创建的虚拟机的虚拟硬盘一开始就是用户设置的大小了。

这里就是选择虚拟硬盘大小的,最后分配20G以上,笔者分配30G,应该够用。

然后选择刚才创建的Ubuntu系统,点击设置,这系统中取消勾选软驱,然后点击存储,选择Ubuntu镜像,笔者使用的是64位Ubuntu 16.04 桌面版的镜像

最后就可以启动安装Ubuntu了。选择我们创建的Ubuntu系统,点击启动
进入到开始安装界面,为了方便使用,笔者选择中文版的

为了安装之后不用在安装和更新应用,笔者勾选了安装Ubuntu时下载更新,这样在安装的时候就已经更新应用了

然后是选安装的硬盘,因为我们使用的自己创建的整一个硬盘,所以我们可以直接选择青春整个硬盘并安装Ubuntu,这里就不用考虑分区和挂载问题了

选择所在的位置,这没什么要求的,笔者随便选择一个城市

然后是选择键盘的布局,通常的键盘布局都是英语(美国)

创建Ubuntu的用户名称和密码

最后就是安装了,这个安装过程可能有点久,耐心等待

安装完成之后就可以在Windows系统上使用Ubuntu系统了,我们再使用Ubuntu来学习和使用PaddlePaddle做深度学习了。最好安装完成之后,把在存储中设置的Ubuntu镜像移除

在本篇文章之后部分都是在Ubuntu上操作,我们都可以使用Ubuntu这虚拟机来完成。
如果读者使用的是Windows 10,可以使用Windows系统自带的Linux子系统,安装教程可以看我之前的文章Windows10安装Linux子系统

使用pip安装

如果你还没有在pip命令的话,首先要安装pip,要确保安装的pip版本是大于9.0.0的,否则可能无法安装paddlepaddle。
安装pip命令如下:

sudo apt install python-pip


安装之后,还有看一下pip的的版本pip --version,如果版本低于9.0.0,那要先升级pip,先要下载一个升级文件,命令如下:

wget https://bootstrap.pypa.io/get-pip.py


下载完成之后,可以使用这个文件安装最新的pip了

python get-pip.py


安装pip就可以动手安装paddlepaddle了。如果权限不够,请在root下执行命令

pip install paddlepaddle


现在就测试看看paddlepaddle有没有,在python的命令终端中试着导入paddlepaddle包:

import paddle.v2 as paddle


如果没有报错的话就证明paddlepaddle安装成功了

使用Docker安装

为什么要使用Docker安装paddlepaddle呢,Docker是完全使用沙箱机制的一个容器,在这个容器安装的环境是不会影响到本身系统的环境的。通俗来说,它就是一个虚拟机,但是它本身的性能开销很小。在使用Docker安装paddlepaddle前,首先要安装Docker,通过下面的命令就可以安装了:

sudo apt-get install docker
1
安装完成之后,可以使用docker --version查看Docker的版本,如果有显示,就证明安装成功了。可以使用docker images查看已经安装的镜像。
一切都没有问题之后,就可以用Docker安装paddlepaddle了,命令如下:

docker pull docker.paddlepaddlehub.com/paddle


在这里不得不说的是,这个安装过程非常久,也许是笔者的带宽太小了。安装完成后,可以再使用docker images命令查看安装的镜像,应该可以 看到类似这样一个镜像,名字和TAG会相同,其他信息一般不同

docker.paddlepaddlehub.com/paddle latest 2b1ae16d846e 27 hours ago 1.338 GB


从源码编译生成安装包

我们的硬件环境都有很大的不同,官方给出的pip安装包不一定是符合我们的需求,比如笔者的电脑是不支持AVX指令集的,在官方中没找到这个的安装包(也行现在已经有了),所以我们要根据自己的需求来打包一个自己的安装包

在本地编译生成安装包
1. 安装依赖环境
在一切开始之前,先要安装好依赖环境,下面表格是官方给出的依赖环境

依赖
版本
说明
GCC
4.8.2
推荐使用CentOS的devtools2
CMake
>=3.2

Python
2.7.x
依赖libpython2.7.so
pip
>=9.0

numpy


SWIG
>=2.0

Go
>=1.8
可选
1.1 安装GCC
一般现在的Ubuntu都是高于个版本了,可以使用gcc --version查看安装的版本。比如笔者的是4.8.4,如果你的是版本是低于4.8.2的就要更新一下了

sudo apt-get install gcc-4.9


1.2 安装CMake
先要从官网下CMake源码

wget https://cmake.org/files/v3.8/cmake-3.8.0.tar.gz


解压源码

tar -zxvf cmake-3.8.0.tar.gz


依次执行下面的代码

# 进入解压后的目录
cd cmake-3.8.0
# 执行当前目录的bootstrap程序
./bootstrap
# make一下
make
# 开始安装
sudo make install


查看是否安装成功,cmake --version,如果正常显示版本,那已经安装成功了。
1.3 安装pip
关于安装pip9.0.0以上的版本,在上面的使用pip安装部分已经讲了,这里就不在熬述了
1.4 安装numpy
安装numpy很简单,一条命令就够了

sudo apt-get install python-numpy


顺便多说一点,matplotlib这个包也经常用到,顺便安装一下

sudo apt-get install python-matplotlib


1.5 安装SWIG
执行下面代码安装SWIG,安装成功之后,使用swig -version检查安装结果

sudo apt-get install -y git curl gfortran make build-essential automake swig libboost-all-dev


1.6 安装Go
官方说可选择,那看情况吧,如果像安装安装吧,笔者顺便安装了,就一条代码的事情,老规则go version

sudo apt-get install golang


到这里,依赖环境就已经安装好了,准备安装paddlepaddle

2.首先要在GitHub上获取paddlepaddle源码

git clone https://github.com/PaddlePaddle/Paddle.git


3.然后输以下命令

# 进入刚下载的Paddle里面
cd Paddle
# 创建一个build文件夹
mkdir build
# 进入build文件夹里
cd build
# 这就要选好你的需求了,比如笔者没有使用GPU,不支持AVX,为了节省空间,我把测试关闭了,这样会少很多空间。最后不要少了..
cmake .. -DWITH_GPU=OFF -DWITH_AVX=OFF -DWITH_TESTING=OFF
# 最后make,生成你想要的安装包,这个可能很久,一定要有耐心
make


经过长久的make之后,终于生成了我们想要的安装包,它的路径在Paddle/build/python/dist下,比如笔者在该目录下有这个安装包paddlepaddle-0.11.0-cp27-cp27mu-linux_x86_64.whl,你的命名可能不是这个。之后就可以安装了,使用pip安装:

# 请切入到该目录
cd build/python/dist/
# 每个人的安装包名字可能不一样。如果权限不够,请在root下执行命令
pip install paddlepaddle-0.11.0-cp27-cp27mu-linux_x86_64.whl


这个我们就已经安装了paddlepaddle,现在就测试看看paddlepaddle有没有安装成功了,在python的命令终端中试着导入paddlepaddle包:

import paddle.v2 as paddle


如果没有报错的话就证明paddlepaddle安装成功了

在Docker编译生成安装包
使用Docker就轻松很多了,有多轻松,看一下便知
1.首先要在GitHub上获取paddlepaddle源码

git clone https://github.com/PaddlePaddle/Paddle.git


2.切入到项目的根目录下

cd Paddle


3.生成安装包
下面一行代码,提醒一下,这个过程非常长,一定要有耐心,顺便把编译测试关了,减少空间

docker run -it -v $PWD:/paddle -e "WITH_GPU=OFF" -e "WITH_AVX=OFF" -e "-DWITH_TESTING=OFF" docker.paddlepaddlehub.com/paddle:latest-dev bash -x /paddle/paddle/scripts/docker/build.sh



同样会在Paddle/build/python/dist下生成一个安装包,这对比在本地生成的安装包,是不是要简单很多,没错这就是Docker强大之处,所有的依赖环境都帮我们安装好了,现在只要安装这个安装包就行了:

# 请切入到该目录
cd build/python/dist/
# 每个人的安装包名字可能不一样。如果权限不够,请在root下执行命令
pip install paddlepaddle-0.11.0-cp27-cp27mu-linux_x86_64.whl


同样我们要测试看看paddlepaddle有没有安装成功了,在python的命令终端中试着导入paddlepaddle包:

import paddle.v2 as paddle


如果没有报错的话就证明paddlepaddle安装成功了

编译Docker镜像

如果你比较喜欢使用Docker来运行你的paddlepaddle代码,但是有没有你想要的镜像,这是就要自己来制作一个Docker镜像了,比如笔者的电脑是不支持AVX指令集的,还只有CPU,那么我就要一个不用AVX指令集和使用CPU训练的镜像。好吧,我们开始吧
1.我们要从GitHub下载源码:

git clone https://github.com/PaddlePaddle/Paddle.git


2.安装开发工具到 Docker image里

# 切入到Paddle目录下
cd Paddle
# 下载依赖环境并创建镜像,别少了最后的.
docker build -t paddle:dev .


有可能它不能够命名为paddle:dev,我们可以对他从重新命名,ID要是你镜像的ID

# docker tag <镜像对应的ID> <镜像名:TAG>
例如:docker tag 1e835127cf33 paddle:dev


3.编译

# 这个编译要很久的,请耐心等待
docker run --rm -e WITH_GPU=OFF -e WITH_AVX=OFF -v $PWD:/paddle paddle:dev


安装完成之后,使用docker images查看刚才安装的镜像

测试安装环境

我们就使用官方给出的一个例子,来测试我们安装paddlepaddle真的安装成功了
1.创建一个记事本,命名为housing.py,并输入以下代码:

import paddle.v2 as paddle

# Initialize PaddlePaddle.
paddle.init(use_gpu=False, trainer_count=1)

# Configure the neural network.
x = paddle.layer.data(name='x', type=paddle.data_type.dense_vector(13))
y_predict = paddle.layer.fc(input=x, size=1, act=paddle.activation.Linear())

# Infer using provided test data.
probs = paddle.infer(
    output_layer=y_predict,
    parameters=paddle.dataset.uci_housing.model(),
    input=[item for item in paddle.dataset.uci_housing.test()()])

for i in xrange(len(probs)):
    print 'Predicted price: ${:,.2f}'.format(probs[i][0] * 1000)


2.执行一下该代码
在本地执行代码请输入下面的命令

python housing.py


在Docker上执行代码的请输入下面的代码

docker run -v $PWD:/work -w /work -p 8899:8899 docker.paddlepaddle.org/paddle python housing.py


-v命令是把本地目录挂载到docker镜像的目录上,-w设置该目录为工作目录,-p设置端口号,使用到的镜像是在使用Docker安装部分安装的镜像docker.paddlepaddle.org/paddle

3.终端会输出下面类似的日志

I0116 08:40:12.004096     1 Util.cpp:166] commandline:  --use_gpu=False --trainer_count=1 
Cache file /root/.cache/paddle/dataset/fit_a_line.tar/fit_a_line.tar not found, downloading https://github.com/PaddlePaddle/book/raw/develop/01.fit_a_line/fit_a_line.tar
[==================================================]
Cache file /root/.cache/paddle/dataset/uci_housing/housing.data not found, downloading https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data
[==================================================]
Predicted price: $12,316.63
Predicted price: $13,830.34
Predicted price: $11,499.34
Predicted price: $17,395.05
Predicted price: $13,317.67
Predicted price: $16,834.08
Predicted price: $16,632.04


如果没有成功运行该代码,报错信息如下,说明安装的paddlepaddle版本过低,请安装高版本的paddlepaddle

I0116 13:53:48.957136 15297 Util.cpp:166] commandline:  --use_gpu=False --trainer_count=1
Traceback (most recent call last):
  File "housing.py", line 13, in 
    parameters=paddle.dataset.uci_housing.model(),
AttributeError: 'module' object has no attribute 'model'


最后提示

有很多学习者会出现明明安装完成PaddlePaddle了,但是在PaddlePaddle的时候,在初始化PaddlePaddle这一行代码出错

paddle.init(use_gpu=False, trainer_count=1)


这个多数是读者的电脑不支持AVX指令集,而在PaddlePaddle的时候,安装的是支持AVX指令集的版本,所以导致在初始化PaddlePaddle的时候报错。所以在安装或者编译PaddlePaddle安装包时,要根据读者电脑本身的情况,选择是否支持AVX指令集。查看电脑是否支持AVX指令集,可以在终端输入以下命令,输出Yes表示支持,输出No表示不支持

if cat /proc/cpuinfo | grep -i avx; then echo Yes; else echo No; fi


项目代码

GitHub地址:https://github.com/yeyupiaoling/LearnPaddle

参考资料

http://paddlepaddle.org/
https://pip.pypa.io/en/stable/
http://www.runoob.com/
http://www.linuxidc.com/Linux/2016-12/138489.htm
https://www.jianshu.com/p/c6264cd5f5c7

2
收藏
回复
全部评论(21)
时间顺序
小帅丶
#2 回复于2018-03

你就是那个作者吗?

1
回复
荒墨丶迷失
#3 回复于2018-03

教程很详细呀  但是排版不是那么好 对了 我装了Docker 打开就报错呢~

1
回复
goJhou
#4 回复于2018-03

这个系列可以跟一跟了哈哈哈

0
回复
荒墨丶迷失
#5 回复于2018-03
goJhou #4
这个系列可以跟一跟了哈哈哈

哈哈哈 之前我们还想着怎么系列呢 发现早有大神了 学习~

1
回复
goJhou
#6 回复于2018-03
哈哈哈 之前我们还想着怎么系列呢 发现早有大神了 学习~

是的是的,你的AI也有戏了

0
回复
荒墨丶迷失
#7 回复于2018-03
goJhou #6
是的是的,你的AI也有戏了

你的AI就是我的AI  一起AI更happy

1
回复
goJhou
#8 回复于2018-03
你的AI就是我的AI  一起AI更happy

我啊,学习计划已经乱的一塌糊涂了

0
回复
风搅火
#9 回复于2018-03

很详细,可以试一下

0
回复
人间月天
#10 回复于2018-04

很详细的教程呢,有耐心。

0
回复
爱上主丽叶
#11 回复于2018-05

对着教程,亦步亦趋啊。可是装虚拟机那么费劲,不如装个mac系统来的划算啊。

0
回复
三丰末日计划
#12 回复于2018-05

我的笔记本支持axv但是报错ImportError: libmklml_intel.so: cannot open shared object file: No such file or directory这个文件去那里搞

0
回复
夜雨飘零1
#13 回复于2018-05
你就是那个作者吗?

本人是作者,你就是小帅吧。原文章链接:https://blog.csdn.net/qq_33200967/article/details/79071926

0
回复
夜雨飘零1
#14 回复于2018-05
我的笔记本支持axv但是报错ImportError: libmklml_intel.so: cannot open shared object file: No such file or directory这个文件去那里搞
展开

你先升级PaddlePaddle,可以在路径/usr/local/lib下看到这个文件的

0
回复
夜雨飘零1
#15 回复于2018-05
教程很详细呀  但是排版不是那么好 对了 我装了Docker 打开就报错呢~

原文章链接:https://blog.csdn.net/qq_33200967/article/details/79071926

0
回复
夜雨飘零1
#16 回复于2018-05
对着教程,亦步亦趋啊。可是装虚拟机那么费劲,不如装个mac系统来的划算啊。

干脆双系统吧

0
回复
A
AIStudio783316
#17 回复于2018-06

这个写的还不错,很详细

0
回复
如何世代为天子
#18 回复于2018-07

有点不一样啊

 

0
回复
夜雨飘零1
#19 回复于2018-07
有点不一样啊  

请问有什么不一样你?除了格式

0
回复
荒墨丶迷失
#22 回复于2018-11

这个在mac上装还是win系统呢?

0
回复
goJhou
#23 回复于2018-11
这个在mac上装还是win系统呢?

他都说到了,ubuntu和win

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户