docker_install_cn.rst 5.1 KB
Newer Older
武毅 已提交
1
使用Docker安装运行
2
================================
Z
zhangjinchao01 已提交
3

T
typhoonzero 已提交
4 5
使用Docker安装和运行PaddlePaddle可以无需考虑依赖环境即可运行。并且也可以在Windows的docker中运行。
您可以在 `Docker官网 <https://docs.docker.com/get-started/>`_ 获得基本的Docker安装和使用方法。
Z
zhangjinchao01 已提交
6

T
typhoonzero 已提交
7 8 9
如果您在使用Windows,可以参考
`这篇 <https://docs.docker.com/toolbox/toolbox_install_windows/>`_
教程,完成在Windows上安装和使用Docker。
T
typhoonzero 已提交
10

T
typhoonzero 已提交
11
在了解Docker的基本使用方法之后,即可开始下面的步骤:
T
typhoonzero 已提交
12

T
typhoonzero 已提交
13
.. _docker_pull:
T
typhoonzero 已提交
14

T
typhoonzero 已提交
15 16
获取PaddlePaddle的Docker镜像
------------------------------
T
typhoonzero 已提交
17

L
Luo Tao 已提交
18
执行下面的命令获取最新的PaddlePaddle Docker镜像,版本为cpu_avx_mkl:
T
typhoonzero 已提交
19 20 21

  .. code-block:: bash

T
typhoonzero 已提交
22
     docker pull paddlepaddle/paddle
T
typhoonzero 已提交
23

T
typhoonzero 已提交
24
对于国内用户,我们提供了加速访问的镜像源:
T
typhoonzero 已提交
25 26 27

  .. code-block:: bash

Y
Yancey 已提交
28
     docker pull docker.paddlepaddlehub.com/paddle
T
typhoonzero 已提交
29

L
Luo Tao 已提交
30
下载GPU版本(cuda8.0_cudnn5_avx_mkl)的Docker镜像:
T
typhoonzero 已提交
31 32

  .. code-block:: bash
T
typhoonzero 已提交
33

T
typhoonzero 已提交
34
     docker pull paddlepaddle/paddle:latest-gpu
Y
Yancey 已提交
35
     docker pull docker.paddlepaddlehub.com/paddle:latest-gpu
T
typhoonzero 已提交
36

T
typhoonzero 已提交
37 38 39 40 41 42 43 44 45 46
选择下载使用不同的BLAS库的Docker镜像:

  .. code-block:: bash

     # 默认是使用MKL的镜像
     docker pull paddlepaddle/paddle
     # 使用OpenBLAS的镜像
     docker pull paddlepaddle/paddle:latest-openblas

下载指定版本的Docker镜像,可以从 `DockerHub网站 <https://hub.docker.com/r/paddlepaddle/paddle/tags/>`_ 获取可选的tag,并执行下面的命令:
Z
zhangjinchao01 已提交
47

T
typhoonzero 已提交
48
  .. code-block:: bash
T
typhoonzero 已提交
49

T
typhoonzero 已提交
50 51
     docker pull paddlepaddle/paddle:[tag]
     # 比如:
Y
Yancey 已提交
52
     docker pull docker.paddlepaddlehub.com/paddle:0.11.0-gpu
Z
zhangjinchao01 已提交
53

T
typhoonzero 已提交
54
.. _docker_run:
Z
zhangjinchao01 已提交
55

T
typhoonzero 已提交
56
在Docker中执行PaddlePaddle训练程序
L
Luo Tao 已提交
57
----------------------------------
58

T
typhoonzero 已提交
59
假设您已经在当前目录(比如在/home/work)编写了一个PaddlePaddle的程序 :code:`train.py` (可以参考
T
typhoonzero 已提交
60
`PaddlePaddleBook <http://www.paddlepaddle.org/docs/develop/book/01.fit_a_line/index.cn.html>`_ 
T
typhoonzero 已提交
61
编写),就可以使用下面的命令开始执行训练:
62

T
typhoonzero 已提交
63
  .. code-block:: bash
T
typhoonzero 已提交
64 65

     cd /home/work
T
typhoonzero 已提交
66 67 68 69 70 71
     docker run -it -v $PWD:/work paddlepaddle/paddle /work/train.py
 
上述命令中, :code:`-it` 参数说明容器已交互式运行; :code:`-v $PWD:/work`
指定将当前路径(Linux中$PWD变量会展开为当前路径的绝对路径)挂载到容器内部的 :code:`/work`
目录; :code:`paddlepaddle/paddle` 指定需要使用的容器; 最后 :code:`/work/train.py`
为容器内执行的命令,即运行训练程序。
72

T
typhoonzero 已提交
73
当然,您也可以进入到Docker容器中,以交互式的方式执行或调试您的代码:
74

T
typhoonzero 已提交
75
  .. code-block:: bash
76

T
typhoonzero 已提交
77 78 79
     docker run -it -v $PWD:/work paddlepaddle/paddle /bin/bash
     cd /work
     python train.py
80

T
typhoonzero 已提交
81
**注:PaddlePaddle Docker镜像为了减小体积,默认没有安装vim,您可以在容器中执行** :code:`apt-get install -y vim` **安装后,在容器中编辑代码。**
82

T
typhoonzero 已提交
83
.. _docker_run_book:
84

T
typhoonzero 已提交
85
使用Docker启动PaddlePaddle Book教程
L
Luo Tao 已提交
86
-----------------------------------
Z
zhangjinchao01 已提交
87

T
typhoonzero 已提交
88
使用Docker可以快速在本地启动一个包含了PaddlePaddle官方Book教程的Jupyter Notebook,可以通过网页浏览。
李科男's avatar
李科男 已提交
89
PaddlePaddle Book是为用户和开发者制作的一个交互式的Jupyter Notebook。
90
如果您想要更深入了解deep learning,PaddlePaddle Book一定是您最好的选择。
T
typhoonzero 已提交
91
大家可以通过它阅读教程,或者制作和分享带有代码、公式、图表、文字的交互式文档。
Z
zhangjinchao01 已提交
92

93
我们提供可以直接运行PaddlePaddle Book的Docker镜像,直接运行:
Z
zhangjinchao01 已提交
94

T
typhoonzero 已提交
95
  .. code-block:: bash
Z
zhangjinchao01 已提交
96

T
typhoonzero 已提交
97
     docker run -p 8888:8888 paddlepaddle/book
Z
zhangjinchao01 已提交
98

99 100 101 102 103 104
国内用户可以使用下面的镜像源来加速访问:

  .. code-block: bash

    docker run -p 8888:8888 docker.paddlepaddlehub.com/book

Y
yi.wu 已提交
105
然后在浏览器中输入以下网址:
Z
zhangjinchao01 已提交
106

T
typhoonzero 已提交
107
  .. code-block:: text
Z
zhangjinchao01 已提交
108

T
typhoonzero 已提交
109
     http://localhost:8888/
Z
zhangjinchao01 已提交
110

Y
yi.wu 已提交
111
就这么简单,享受您的旅程!
Z
zhangjinchao01 已提交
112

T
typhoonzero 已提交
113
.. _docker_run_gpu:
Y
yi.wu 已提交
114

T
typhoonzero 已提交
115 116
使用Docker执行GPU训练
------------------------------
L
liaogang 已提交
117

T
typhoonzero 已提交
118 119 120
为了保证GPU驱动能够在镜像里面正常运行,我们推荐使用
`nvidia-docker <https://github.com/NVIDIA/nvidia-docker>`_ 来运行镜像。
请不要忘记提前在物理机上安装GPU最新驱动。
L
liaogang 已提交
121

T
typhoonzero 已提交
122
  .. code-block:: bash
Z
zhangjinchao01 已提交
123

L
Luo Tao 已提交
124
     nvidia-docker run -it -v $PWD:/work paddlepaddle/paddle:latest-gpu /bin/bash
Y
yi.wu 已提交
125

T
typhoonzero 已提交
126
**注: 如果没有安装nvidia-docker,可以尝试以下的方法,将CUDA库和Linux设备挂载到Docker容器内:**
Z
zhangjinchao01 已提交
127

T
typhoonzero 已提交
128
  .. code-block:: bash
Z
zhangjinchao01 已提交
129

T
typhoonzero 已提交
130 131
     export CUDA_SO="$(\ls /usr/lib64/libcuda* | xargs -I{} echo '-v {}:{}') $(\ls /usr/lib64/libnvidia* | xargs -I{} echo '-v {}:{}')"
     export DEVICES=$(\ls /dev/nvidia* | xargs -I{} echo '--device {}:{}')
L
Luo Tao 已提交
132
     docker run ${CUDA_SO} ${DEVICES} -it paddlepaddle/paddle:latest-gpu
Y
yi.wu 已提交
133

T
typhoonzero 已提交
134
**关于AVX:**
Z
zhangjinchao01 已提交
135

T
typhoonzero 已提交
136 137
AVX是一种CPU指令集,可以加速PaddlePaddle的计算。最新的PaddlePaddle Docker镜像默认
是开启AVX编译的,所以,如果您的电脑不支持AVX,需要单独
L
Luo Tao 已提交
138
`编译 <./build_from_source_cn.html>`_ PaddlePaddle为no-avx版本。
Z
zhangjinchao01 已提交
139

T
typhoonzero 已提交
140
以下指令能检查Linux电脑是否支持AVX:
Y
yi.wu 已提交
141

142
   .. code-block:: bash
143

T
typhoonzero 已提交
144
      if cat /proc/cpuinfo | grep -i avx; then echo Yes; else echo No; fi
145

T
typhoonzero 已提交
146
如果输出是No,就需要选择使用no-AVX的镜像