From 4691659e3d941dcb55919b044b69465bdf8c109f Mon Sep 17 00:00:00 2001 From: typhoonzero Date: Wed, 22 Nov 2017 12:59:48 +0800 Subject: [PATCH 1/7] update installation docs --- .../build_from_source_cn.rst | 119 ++++++++ .../build_and_install/build_from_source_en.md | 236 -------------- .../build_from_source_en.rst | 133 ++++++++ .../cmake/build_from_source_cn.rst | 43 --- .../cmake/cblas_settings.csv | 5 - .../cmake/compile_options.csv | 12 - .../build_and_install/docker_install_cn.rst | 229 +++++--------- .../build_and_install/docker_install_en.rst | 288 +++++------------- doc/getstarted/build_and_install/index_cn.rst | 29 +- doc/getstarted/build_and_install/index_en.rst | 36 ++- .../build_and_install/pip_install_cn.rst | 77 +++++ .../build_and_install/pip_install_en.rst | 96 ++++++ 12 files changed, 623 insertions(+), 680 deletions(-) create mode 100644 doc/getstarted/build_and_install/build_from_source_cn.rst delete mode 100644 doc/getstarted/build_and_install/build_from_source_en.md create mode 100644 doc/getstarted/build_and_install/build_from_source_en.rst delete mode 100644 doc/getstarted/build_and_install/cmake/build_from_source_cn.rst delete mode 100644 doc/getstarted/build_and_install/cmake/cblas_settings.csv delete mode 100644 doc/getstarted/build_and_install/cmake/compile_options.csv create mode 100644 doc/getstarted/build_and_install/pip_install_cn.rst create mode 100644 doc/getstarted/build_and_install/pip_install_en.rst diff --git a/doc/getstarted/build_and_install/build_from_source_cn.rst b/doc/getstarted/build_and_install/build_from_source_cn.rst new file mode 100644 index 0000000000000..f71b4b6fefd31 --- /dev/null +++ b/doc/getstarted/build_and_install/build_from_source_cn.rst @@ -0,0 +1,119 @@ +从源码编译PaddlePaddle +====================== + +.. _build_step: + +编译方法 +---------------- + +PaddlePaddle主要使用 `CMake `_ 以及GCC, G++作为编译工具。 +我们推荐您使用PaddlePaddle编译环境镜像完成编译,这样可以免去单独安装编译依赖的步骤,可选的不同编译环境 +可以在 `这里 `_ 找到。 +编译PaddlePaddle,需要执行: + +.. code-block:: bash + + git clone https://github.com/PaddlePaddle/Paddle.git + cd Paddle + # 如果使用Docker编译环境,执行下面的命令 + docker run -it -v $PWD:/paddle -e "WITH_GPU=ON" -e "WITH_TESTING=OFF" paddlepaddle/paddle_manylinux_devel:cuda8.0_cudnn5 bash -x paddle/scripts/docker/build.sh + # 如果不使用Docker编译环境,执行下面的命令 + mkdir build + cd build + cmake -DWITH_GPU=ON -DWITH_TESTING=OFF .. + make + + +编译完成后会在build/python/dist目录下生成输出的whl包,可以选在在当前机器安装也可以拷贝到目标机器安装: + +.. code-block:: bash + + pip install python/dist/*.whl + + +.. _build_step: + +编译依赖 +---------------- + +PaddlePaddle编译需要使用到下面的依赖(包含但不限于),其他的依赖软件,会自动在编译时下载。 + +.. csv-table:: PaddlePaddle编译依赖 + :header: "依赖", "版本", "说明" + :widths: 10, 15, 30 + + "CMake", ">=3.5", "" + "GCC", "4.8.2", "推荐使用CentOS的devtools2" + "Python", "2.7.x", "依赖libpython2.7.so" + "pip", ">=9.0", "" + "numpy", "", "" + "SWIG", ">=2.0", "" + "Go", ">=1.8", "可选" + + +.. _build_options: + +编译选项 +---------------- + +PaddlePaddle的编译选项,包括生成CPU/GPU二进制文件、链接何种BLAS库等。用户可在调用cmake的时候设置它们,详细的cmake使用方法可以参考 `官方文档 `_ 。 + +.. _build_options_bool: + +Bool型的编译选项 +---------------- + +用户可在cmake的命令行中,通过使用 ``-D`` 命令设置该类编译选项,例如 + +.. code-block:: bash + + cmake .. -DWITH_GPU=OFF + +.. csv-table:: Bool型的编译选项 + :header: "选项", "说明", "默认值" + :widths: 1, 7, 2 + + "WITH_GPU", "是否支持GPU。", "是" + "WITH_DOUBLE", "是否使用双精度浮点数。", "否" + "WITH_DSO", "是否运行时动态加载CUDA动态库,而非静态加载CUDA动态库。", "是" + "WITH_AVX", "是否编译含有AVX指令集的PaddlePaddle二进制文件", "是" + "WITH_PYTHON", "是否内嵌PYTHON解释器。", "是" + "WITH_STYLE_CHECK", "是否编译时进行代码风格检查", "是" + "WITH_TESTING", "是否开启单元测试", "是" + "WITH_DOC", "是否编译中英文文档", "否" + "WITH_SWIG_PY", "是否编译PYTHON的SWIG接口,该接口可用于预测和定制化训练", "自动" + "WITH_GOLANG", "是否编译go语言的可容错parameter server", "是" + +.. _build_options_blas: + +BLAS/CUDA/Cudnn的编译选项 +-------------------------- +BLAS ++++++ + +PaddlePaddle支持以下任意一种BLAS库:`MKL `_ ,`ATLAS `_ ,`OpenBlAS `_ 和 `REFERENCE BLAS `_ 。 + +.. csv-table:: BLAS路径相关的编译选项 + :header: "编译选项", "描述", "注意" + :widths: 1, 2, 7 + + "MKL_ROOT", "${MKL_ROOT}/include下需要包含mkl.h,${MKL_ROOT}/lib目录下需要包含mkl_core,mkl_sequential和mkl_intel_lp64三个库。" + "ATLAS_ROOT", "${ATLAS_ROOT}/include下需要包含cblas.h,${ATLAS_ROOT}/lib下需要包含cblas和atlas两个库。" + "OPENBLAS_ROOT", "${OPENBLAS_ROOT}/include下需要包含cblas.h,${OPENBLAS_ROOT}/lib下需要包含openblas库。" + "REFERENCE_CBLAS_ROOT", "${REFERENCE_CBLAS_ROOT}/include下需要包含cblas.h,${REFERENCE_CBLAS_ROOT}/lib下需要包含cblas库。" + +CUDA/Cudnn ++++++++++++ + +PaddlePaddle可以使用cudnn v2之后的任何一个版本来编译运行,但尽量请保持编译和运行使用的cudnn是同一个版本。 我们推荐使用最新版本的cudnn v5.1。 + +编译选项的设置 +++++++++++++++ + +PaddePaddle通过编译时指定路径来实现引用各种BLAS/CUDA/Cudnn库。cmake编译时,首先在系统路径(/usr/lib\:/usr/local/lib)中搜索这几个库,同时也会读取相关路径变量来进行搜索。 通过使用 ``-D`` 命令可以设置,例如 + +.. code-block:: bash + + cmake .. -DMKL_ROOT=/opt/mkl/ -DCUDNN_ROOT=/opt/cudnnv5 + +注意:这几个编译选项的设置,只在第一次cmake的时候有效。如果之后想要重新设置,推荐清理整个编译目录(``rm -rf``)后,再指定。 diff --git a/doc/getstarted/build_and_install/build_from_source_en.md b/doc/getstarted/build_and_install/build_from_source_en.md deleted file mode 100644 index 2f14614894956..0000000000000 --- a/doc/getstarted/build_and_install/build_from_source_en.md +++ /dev/null @@ -1,236 +0,0 @@ -Installing from Sources -========================== - -* [1. Download and Setup](#download) -* [2. Requirements](#requirements) -* [3. Build on Ubuntu](#ubuntu) -* [4. Build on Centos](#centos) - - -## Download and Setup -You can download PaddlePaddle from the [github source](https://github.com/PaddlePaddle/Paddle). - -```bash -git clone https://github.com/PaddlePaddle/Paddle paddle -cd paddle -``` -## Requirements - -To compile the source code, your computer must be equipped with the following dependencies. - -- **Compiler**: GCC >= 4.8 or Clang >= 3.3 (AppleClang >= 5.1) and gfortran compiler -- **CMake**: CMake >= 3.0 (at least CMake 3.4 on Mac OS X) -- **BLAS**: MKL, OpenBlas or ATLAS -- **Python**: only support Python 2.7 -- **Go** - -**Note:** For CUDA 7.0 and CUDA 7.5, GCC 5.0 and up are not supported! -For CUDA 8.0, GCC versions later than 5.3 are not supported! - -### Options - -PaddlePaddle supports some build options. - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionalDescription
WITH_GPUCompile PaddlePaddle with NVIDIA GPU
WITH_AVXCompile PaddlePaddle with AVX intrinsics
WITH_DSOCompile PaddlePaddle with dynamic linked CUDA
WITH_TESTINGCompile PaddlePaddle with unit testing
WITH_SWIG_PYCompile PaddlePaddle with inference api
WITH_STYLE_CHECKCompile PaddlePaddle with style check
WITH_PYTHONCompile PaddlePaddle with python interpreter
WITH_DOUBLECompile PaddlePaddle with double precision
WITH_RDMACompile PaddlePaddle with RDMA support
WITH_TIMERCompile PaddlePaddle with stats timer
WITH_PROFILERCompile PaddlePaddle with GPU profiler
WITH_DOCCompile PaddlePaddle with documentation
WITH_COVERAGECompile PaddlePaddle with code coverage
COVERALLS_UPLOADPackage code coverage data to coveralls
ON_TRAVISExclude special unit test on Travis CI
- - -**Note:** - - The GPU version works best with Cuda Toolkit 8.0 and cuDNN v5. - - Other versions like Cuda Toolkit 7.0, 7.5 and cuDNN v3, v4 are also supported. - - **To utilize cuDNN v5, Cuda Toolkit 7.5 is prerequisite and vice versa.** - -As a simple example, consider the following: - -1. **BLAS Dependencies(optional)** - - CMake will search BLAS libraries from the system. If not found, OpenBLAS will be downloaded, built and installed automatically. - To utilize preinstalled BLAS, you can simply specify MKL, OpenBLAS or ATLAS via `MKL_ROOT`, `OPENBLAS_ROOT` or `ATLAS_ROOT`. - - ```bash - # specify MKL - cmake .. -DMKL_ROOT= - # or specify OpenBLAS - cmake .. -DOPENBLAS_ROOT= - ``` - -2. **Doc Dependencies(optional)** - - To generate PaddlePaddle's documentation, install dependencies and set `-DWITH_DOC=ON` as follows: - - ```bash - pip install 'sphinx>=1.4.0' - pip install sphinx_rtd_theme recommonmark - - # install doxygen on Ubuntu - sudo apt-get install doxygen - # install doxygen on Mac OS X - brew install doxygen - - # active docs in cmake - cmake .. -DWITH_DOC=ON` - ``` - -## Build on Ubuntu 14.04 - -### Install Dependencies - -- **Paddle Dependencies** - - ```bash - # necessary - sudo apt-get update - sudo apt-get install -y git curl gcc g++ gfortran make build-essential automake - sudo apt-get install -y python python-pip python-numpy libpython-dev bison - sudo pip install 'protobuf==3.1.0.post1' - - # Install Go - # You can follow https://golang.org/doc/install for a detailed explanation. - wget -O go.tgz https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz && \ - tar -C $HOME -xzf go.tgz && \ - mkdir $HOME/gopath && \ - rm go.tgz - - # Setup environment variables - export GOROOT=$HOME/go - export GOPATH=$HOME/gopath - export PATH=$PATH:$GOROOT/bin - - # install cmake 3.4 - curl -sSL https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz | tar -xz && \ - cd cmake-3.4.1 && ./bootstrap && make -j4 && sudo make install && \ - cd .. && rm -rf cmake-3.4.1 - ``` - -- **GPU Dependencies (optional)** - - To build GPU version, you will need the following installed: - - 1. a CUDA-capable GPU - 2. A supported version of Linux with a GCC compiler and toolchain - 3. NVIDIA CUDA Toolkit (available at http://developer.nvidia.com/cuda-downloads) - 4. NVIDIA cuDNN Library (available at https://developer.nvidia.com/cudnn) - - The CUDA development environment relies on tight integration with the host development environment, - including the host compiler and C runtime libraries, and is therefore only supported on - distribution versions that have been qualified for this CUDA Toolkit release. - - After downloading cuDNN library, issue the following commands: - - ```bash - sudo tar -xzf cudnn-7.5-linux-x64-v5.1.tgz -C /usr/local - sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* - ``` - Then you need to set LD\_LIBRARY\_PATH, PATH environment variables in ~/.bashrc. - - ```bash - export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH - export PATH=/usr/local/cuda/bin:$PATH - ``` - -### Build and Install - -As usual, the best option is to create build folder under paddle project directory. - -```bash -mkdir build && cd build -``` - -Finally, you can build and install PaddlePaddle: - -```bash -# you can add build option here, such as: -cmake .. -DCMAKE_INSTALL_PREFIX= -# please use sudo make install, if you want to install PaddlePaddle into the system -make -j `nproc` && make install -# set PaddlePaddle installation path in ~/.bashrc -export PATH=/bin:$PATH -# install PaddlePaddle Python modules. -sudo pip install /opt/paddle/share/wheels/*.whl -``` - -## Build on Centos 7 - -### Install Dependencies - -- **CPU Dependencies** - - ```bash - # necessary - sudo yum update - sudo yum install -y epel-release - sudo yum install -y make cmake3 python-devel python-pip gcc-gfortran swig git - sudo pip install wheel numpy - sudo pip install 'protobuf>=3.0.0' - ``` - -- **GPU Dependencies (optional)** - - To build GPU version, you will need the following installed: - - 1. a CUDA-capable GPU - 2. A supported version of Linux with a GCC compiler and toolchain - 3. NVIDIA CUDA Toolkit (available at http://developer.nvidia.com/cuda-downloads) - 4. NVIDIA cuDNN Library (available at https://developer.nvidia.com/cudnn) - - The CUDA development environment relies on tight integration with the host development environment, - including the host compiler and C runtime libraries, and is therefore only supported on - distribution versions that have been qualified for this CUDA Toolkit release. - - After downloading cuDNN library, issue the following commands: - - ```bash - sudo tar -xzf cudnn-7.5-linux-x64-v5.1.tgz -C /usr/local - sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* - ``` - Then you need to set LD\_LIBRARY\_PATH, PATH environment variables in ~/.bashrc. - - ```bash - export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH - export PATH=/usr/local/cuda/bin:$PATH - ``` - -### Build and Install - -As usual, the best option is to create build folder under paddle project directory. - -```bash -mkdir build && cd build -``` - -Finally, you can build and install PaddlePaddle: - -```bash -# you can add build option here, such as: -cmake3 .. -DCMAKE_INSTALL_PREFIX= -# please use sudo make install, if you want to install PaddlePaddle into the system -make -j `nproc` && make install -# set PaddlePaddle installation path in ~/.bashrc -export PATH=/bin:$PATH -# install PaddlePaddle Python modules. -sudo pip install /opt/paddle/share/wheels/*.whl -``` diff --git a/doc/getstarted/build_and_install/build_from_source_en.rst b/doc/getstarted/build_and_install/build_from_source_en.rst new file mode 100644 index 0000000000000..80dfb8c468b7d --- /dev/null +++ b/doc/getstarted/build_and_install/build_from_source_en.rst @@ -0,0 +1,133 @@ +Build PaddlePaddle from Sources +========================== + +.. _build_step: + +How To Build +---------------- + +PaddlePaddle mainly uses `CMake `_ and GCC, G++ as compile +tools. We recommend you to use our pre-built Docker image to run the build +to avoid installing dependencies by yourself. We have several build environment +Docker images `here `_. +Then run: + +.. code-block:: bash + + git clone https://github.com/PaddlePaddle/Paddle.git + cd Paddle + # run the following command if you are using docker + docker run -it -v $PWD:/paddle -e "WITH_GPU=ON" -e "WITH_TESTING=OFF" paddlepaddle/paddle_manylinux_devel:cuda8.0_cudnn5 bash -x paddle/scripts/docker/build.sh + # else run these commands + mkdir build + cd build + cmake -DWITH_GPU=ON -DWITH_TESTING=OFF .. + make + +When the compile finishes, you can get the output whl package under +build/python/dist, then you can choose to install the whl on local +machine or copy it to the target machine. + +.. code-block:: bash + + pip install python/dist/*.whl + +.. _build_step: + +Compile Dependencies +---------------- + +PaddlePaddle need the following dependencies when compiling, other dependencies +will be downloaded automatically. + +.. csv-table:: PaddlePaddle Compile Dependencies + :header: "Dependency", "Version", "Description" + :widths: 10, 15, 30 + + "CMake", ">=3.5", "" + "GCC", "4.8.2", "Recommend devtools2 for CentOS" + "Python", "2.7.x", "Need libpython2.7.so" + "pip", ">=9.0", "" + "numpy", "", "" + "SWIG", ">=2.0", "" + "Go", ">=1.8", "Optional" + + +.. _build_options: + +Build Options +---------------- + +Build options include whether build binaries for CPU or GPU, which BLAS +library to use etc. You may pass these settings when running cmake. +For detailed cmake tutorial please refer to `here `_ 。 + +.. _build_options_bool: + +Bool Type Options +---------------- + +You can add :code:`-D` argument to pass such options, like: + +.. code-block:: bash + + cmake .. -DWITH_GPU=OFF + +.. csv-table:: Bool Type Options + :header: "Option", "Description", "Default" + :widths: 1, 7, 2 + + "WITH_GPU", "Build with GPU support", "ON" + "WITH_DOUBLE", "Build with double precision", "OFF" + "WITH_DSO", "Dynamically load CUDA libraries", "ON" + "WITH_AVX", "Build with AVX support", "ON" + "WITH_PYTHON", "Build with integrated Python interpreter", "ON" + "WITH_STYLE_CHECK", "Check code style when building", "ON" + "WITH_TESTING", "Build unit tests", "ON" + "WITH_DOC", "Build documentaions", "OFF" + "WITH_SWIG_PY", "Build Python SWIG interface for V2 API", "Auto" + "WITH_GOLANG", "Build fault-tolerant parameter server written in go", "ON" + +.. _build_options_blas: + +BLAS/CUDA/Cudnn Options +-------------------------- +BLAS ++++++ + +You can build PaddlePaddle with any of the below BLAS libraries: +`MKL `_ , +`ATLAS `_ , +`OpenBlAS `_ and +`REFERENCE BLAS `_ . + +.. csv-table:: BLAS Options + :header: "Option", "Description" + :widths: 1, 7 + + "MKL_ROOT", "${MKL_ROOT}/include must have mkl.h, ${MKL_ROOT}/lib must have mkl_core, mkl_sequential and mkl_intel_lp64 libs." + "ATLAS_ROOT", "${ATLAS_ROOT}/include must have cblas.h,${ATLAS_ROOT}/lib must have cblas and atlas libs" + "OPENBLAS_ROOT", "${OPENBLAS_ROOT}/include must have cblas.h,${OPENBLAS_ROOT}/lib must have OpenBlas libs." + "REFERENCE_CBLAS_ROOT", "${REFERENCE_CBLAS_ROOT}/include must have cblas.h,${REFERENCE_CBLAS_ROOT}/lib must have cblas lib." + +CUDA/Cudnn ++++++++++++ + +PaddlePaddle can build with any version later than Cudnn v2, and we intend to +keep on with latest cudnn versions. Be sure to run with the same version of cudnn +you built. + +Pass Compile Options +++++++++++++++ + +You can pass compile options to use intended BLAS/CUDA/Cudnn libraries. +When running cmake command, it will search system paths like +:code:`/usr/lib\:/usr/local/lib` and then search paths that you +passed to cmake, i.e. + +.. code-block:: bash + + cmake .. -DMKL_ROOT=/opt/mkl/ -DCUDNN_ROOT=/opt/cudnnv5 + +**NOTE: These options only take effect when running cmake for the first time, you need to clean the cmake cache or clean the build directory if you want to change it.** + diff --git a/doc/getstarted/build_and_install/cmake/build_from_source_cn.rst b/doc/getstarted/build_and_install/cmake/build_from_source_cn.rst deleted file mode 100644 index be0c1ffa451b2..0000000000000 --- a/doc/getstarted/build_and_install/cmake/build_from_source_cn.rst +++ /dev/null @@ -1,43 +0,0 @@ -PaddlePaddle的编译选项 -====================== - -PaddlePaddle的编译选项,包括生成CPU/GPU二进制文件、链接何种BLAS库等。用户可在调用cmake的时候设置它们,详细的cmake使用方法可以参考 `官方文档 `_ 。 - -Bool型的编译选项 ----------------- -用户可在cmake的命令行中,通过使用 ``-D`` 命令设置该类编译选项,例如 - -.. code-block:: bash - - cmake .. -DWITH_GPU=OFF - -.. csv-table:: Bool型的编译选项 - :widths: 1, 7, 2 - :file: compile_options.csv - -BLAS/CUDA/Cudnn的编译选项 --------------------------- -BLAS -+++++ - -PaddlePaddle支持以下任意一种BLAS库:`MKL `_ ,`ATLAS `_ ,`OpenBlAS `_ 和 `REFERENCE BLAS `_ 。 - -.. csv-table:: BLAS路径相关的编译选项 - :widths: 1, 2, 7 - :file: cblas_settings.csv - -CUDA/Cudnn -+++++++++++ - -PaddlePaddle可以使用cudnn v2之后的任何一个版本来编译运行,但尽量请保持编译和运行使用的cudnn是同一个版本。 我们推荐使用最新版本的cudnn v5.1。 - -编译选项的设置 -++++++++++++++ - -PaddePaddle通过编译时指定路径来实现引用各种BLAS/CUDA/Cudnn库。cmake编译时,首先在系统路径(/usr/lib\:/usr/local/lib)中搜索这几个库,同时也会读取相关路径变量来进行搜索。 通过使用 ``-D`` 命令可以设置,例如 - -.. code-block:: bash - - cmake .. -DMKL_ROOT=/opt/mkl/ -DCUDNN_ROOT=/opt/cudnnv5 - -注意:这几个编译选项的设置,只在第一次cmake的时候有效。如果之后想要重新设置,推荐清理整个编译目录(``rm -rf``)后,再指定。 diff --git a/doc/getstarted/build_and_install/cmake/cblas_settings.csv b/doc/getstarted/build_and_install/cmake/cblas_settings.csv deleted file mode 100644 index a6356baf16a0d..0000000000000 --- a/doc/getstarted/build_and_install/cmake/cblas_settings.csv +++ /dev/null @@ -1,5 +0,0 @@ -编译选项,描述,注意 -MKL_ROOT,MKL的路径,${MKL_ROOT}/include下需要包含mkl.h,${MKL_ROOT}/lib目录下需要包含mkl_core,mkl_sequential和mkl_intel_lp64三个库。 -ATLAS_ROOT,ATLAS的路径,${ATLAS_ROOT}/include下需要包含cblas.h,${ATLAS_ROOT}/lib下需要包含cblas和atlas两个库。 -OPENBLAS_ROOT,OpenBLAS的路径,${OPENBLAS_ROOT}/include下需要包含cblas.h,${OPENBLAS_ROOT}/lib下需要包含openblas库。 -REFERENCE_CBLAS_ROOT,REFERENCE BLAS的路径,${REFERENCE_CBLAS_ROOT}/include下需要包含cblas.h,${REFERENCE_CBLAS_ROOT}/lib下需要包含cblas库。 \ No newline at end of file diff --git a/doc/getstarted/build_and_install/cmake/compile_options.csv b/doc/getstarted/build_and_install/cmake/compile_options.csv deleted file mode 100644 index 463b825470579..0000000000000 --- a/doc/getstarted/build_and_install/cmake/compile_options.csv +++ /dev/null @@ -1,12 +0,0 @@ -选项,说明,默认值 -WITH_GPU,是否支持GPU。,取决于是否寻找到CUDA工具链 -WITH_DOUBLE,是否使用双精度浮点数。,否 -WITH_DSO,是否运行时动态加载CUDA动态库,而非静态加载CUDA动态库。,是 -WITH_AVX,是否编译含有AVX指令集的PaddlePaddle二进制文件,是 -WITH_PYTHON,是否内嵌PYTHON解释器。方便今后的嵌入式移植工作。,是 -WITH_STYLE_CHECK,是否编译时进行代码风格检查,是 -WITH_RDMA,是否开启RDMA,否 -WITH_TIMER,是否开启计时功能。如果开启会导致运行略慢,打印的日志变多,但是方便调试和测Benchmark,否 -WITH_TESTING,是否开启单元测试,取决于是否寻找到GTEST -WITH_DOC,是否编译中英文文档,否 -WITH_SWIG_PY,是否编译PYTHON的SWIG接口,该接口可用于预测和定制化训练,取决于是否寻找到SWIG \ No newline at end of file diff --git a/doc/getstarted/build_and_install/docker_install_cn.rst b/doc/getstarted/build_and_install/docker_install_cn.rst index 0d34dec8e908c..03a83627930e6 100644 --- a/doc/getstarted/build_and_install/docker_install_cn.rst +++ b/doc/getstarted/build_and_install/docker_install_cn.rst @@ -1,152 +1,83 @@ -PaddlePaddle的Docker容器使用方式 +使用Docker安装运行PaddlePaddle ================================ -PaddlePaddle目前唯一官方支持的运行的方式是Docker容器。因为Docker能在所有主要操作系统(包括Linux,Mac OS X和Windows)上运行。 请注意,您需要更改 `Dockers设置 `_ 才能充分利用Mac OS X和Windows上的硬件资源。 +使用Docker安装和运行PaddlePaddle可以无需考虑依赖环境即可运行。并且也可以在Windows的docker中运行。 +您可以在 `Docker官网 `_ 获得基本的Docker安装和使用方法。 -Docker使用入门 ------------------------------- - -几个基础的概念帮助理解和使用Docker: +如果您在使用Windows,可以参考 +`这篇 `_ +教程,完成在Windows上安装和使用Docker。 -- *镜像*:一个Docker镜像是一个打包好的软件。它包含了这个软件本身和它所依赖的运行环境。PaddlePaddle的Docker镜像就包含了PaddlePaddle的Python库以及其依赖的多个Python库。这样我们可以直接在Docker中运行需要的程序而不需要安装后在执行。可以执行: +在了解Docker的基本使用方法之后,即可开始下面的步骤: - .. code-block:: bash +.. _docker_pull: - docker images +获取PaddlePaddle的Docker镜像 +------------------------------ - 来列出当前系统中的所有镜像,同样可以执行: +执行下面的命令获取最新的PaddlePaddle Docker镜像 .. code-block:: bash - - docker pull paddlepaddle/paddle:0.10.0 - 来下载Docker镜像,paddlepaddle/paddle是从官方镜像源Dockerhub.com下载的,推荐国内用户使用docker.paddlepaddle.org/paddle下载。 + docker pull paddlepaddle/paddle -- *容器*: 如果说一个Docker镜像就是一个程序,那容器就是这个程序运行时产生的“进程”。 - 实际上,一个容器就是一个操作系统的进程,但是是运行在独立的进程空间,文件系统以及网络之上。 - 可以执行: +对于国内用户,我们提供了加速访问的镜像源: .. code-block:: bash - docker run paddlepaddle/paddle:0.10.0 + docker pull docker.paddlepaddle.org/paddle - 来使用一个镜像启动一个容器。 - -- 默认情况下,Docker容器会运行在独立的文件系统空间之上,我们无法在Docker容器中 - 访问到主机上的文件。可以通过*挂载Volume*的方式,将主机上的文件或目录挂载到 - Docker容器中。下面的命令把当前目录挂载到了容器中的 /data 目录下,容器使用 - debian镜像,并且启动后执行 :code:`ls /data`。 +下载GPU版本的Docker镜像: .. code-block:: bash + docker pull paddlepaddle/paddle:latest-gpu + docker pull docker.paddlepaddle.org/paddle:latest-gpu - docker run --rm -v $(pwd):/data debian ls /data - -PaddlePaddle发布的Docker镜像使用说明 ------------------------------- - -我们把PaddlePaddle的编译环境打包成一个镜像,称为开发镜像,里面涵盖了 -PaddlePaddle需要的所有编译工具。把编译出来的PaddlePaddle也打包成一个镜 -像,称为生产镜像,里面涵盖了PaddlePaddle运行所需的所有环境。每次 -PaddlePaddle发布新版本的时候都会发布对应版本的生产镜像以及开发镜像。运 -行镜像包括纯CPU版本和GPU版本以及其对应的非AVX版本。我们会在 -`dockerhub.com `_ -和国内镜像`docker.paddlepaddle.org` 提供最新 -的Docker镜像,可以在"tags"标签下找到最新的Paddle镜像版本。 - -**注意:为了方便在国内的开发者下载Docker镜像,我们提供了国内的镜像服务器供大家使用。如果您在国内,请把文档里命令中的paddlepaddle/paddle替换成docker.paddlepaddle.org/paddle。** - -1. 开发镜像::code:`paddlepaddle/paddle:0.10.0-dev` - - 这个镜像包含了Paddle相关的开发工具以及编译和运行环境。用户可以使用开发镜像代替配置本地环境,完成开发,编译,发布, - 文档编写等工作。由于不同的Paddle的版本可能需要不同的依赖和工具,所以如果需要自行配置开发环境需要考虑版本的因素。 - 开发镜像包含了以下工具: - - - gcc/clang - - nvcc - - Python - - sphinx - - woboq - - sshd - 很多开发者会使用远程的安装有GPU的服务器工作,用户可以使用ssh登录到这台服务器上并执行 :code:`docker exec`进入开发镜像并开始工作, - 也可以在开发镜像中启动一个SSHD服务,方便开发者直接登录到镜像中进行开发: - - 以交互容器方式运行开发镜像: - - .. code-block:: bash - - docker run -it --rm -v $(pwd):/paddle paddlepaddle/paddle:0.10.0-dev /bin/bash - - 或者,可以以后台进程方式运行容器: - - .. code-block:: bash - - docker run -d -p 2202:22 -p 8888:8888 -v $(pwd):/paddle paddlepaddle/paddle:0.10.0-dev /usr/sbin/sshd -D - - 然后用密码 :code:`root` SSH进入容器: +下载指定版本的Docker镜像,可以从 + `DockerHub网站 `_ + 获取可选的tag,并执行下面的命令: - .. code-block:: bash - - ssh -p 2202 root@localhost - - SSH方式的一个优点是我们可以从多个终端进入容器。比如,一个终端运行vi,另一个终端运行Python。另一个好处是我们可以把PaddlePaddle容器运行在远程服务器上,并在笔记本上通过SSH与其连接。 - -2. 生产镜像:根据CPU、GPU和非AVX区分了如下4个镜像: - - - GPU/AVX::code:`paddlepaddle/paddle:-gpu` - - GPU/no-AVX::code:`paddlepaddle/paddle:-gpu-noavx` - - CPU/AVX::code:`paddlepaddle/paddle:` - - CPU/no-AVX::code:`paddlepaddle/paddle:-noavx` - - 纯CPU镜像以及GPU镜像都会用到AVX指令集,但是2008年之前生产的旧电脑不支持AVX。以下指令能检查Linux电脑是否支持AVX: - - .. code-block:: bash - - if cat /proc/cpuinfo | grep -i avx; then echo Yes; else echo No; fi - - 如果输出是No,就需要选择使用no-AVX的镜像 - - **注:在0.10.0之后的版本,PaddlePaddle都可以自动判断硬件是否支持AVX,所以无需判断AVX即可使用** - - 以上方法在GPU镜像里也能用,只是请不要忘记提前在物理机上安装GPU最新驱动。 - 为了保证GPU驱动能够在镜像里面正常运行,我们推荐使用[nvidia-docker](https://github.com/NVIDIA/nvidia-docker)来运行镜像。 - - .. code-block:: bash - - nvidia-docker run -it --rm paddledev/paddle:0.10.0-gpu /bin/bash - - 注意: 如果使用nvidia-docker存在问题,你也许可以尝试更老的方法,具体如下,但是我们并不推荐这种方法。: - - .. code-block:: bash - - 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 {}:{}') - docker run ${CUDA_SO} ${DEVICES} -it paddledev/paddle:0.10.0-gpu - -3. 运行以及发布您的AI程序 + .. code-block:: bash + docker pull paddlepaddle/paddle:[tag] + # 比如: + docker pull docker.paddlepaddle.org/paddle:0.10.0-gpu - 假设您已经完成了一个AI训练的python程序 :code:`a.py`,这个程序是您在开发机上使用开发镜像完成开发。此时您可以运行这个命令在开发机上进行测试运行: - .. code-block:: bash +.. _docker_run: - docker run -it -v $PWD:/work paddle /work/a.py +在Docker中执行PaddlePaddle训练程序 +------------------------------ - 如果要使用GPU,请运行: +假设您已经在当前目录编写了一个PaddlePaddle的程序 :code:`train.py`(可以参考 +`PaddlePaddleBook `_ +编写),就可以使用下面的命令开始执行训练: - .. code-block:: bash + .. code-block:: bash + 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` +为容器内执行的命令,即运行训练程序。 - nvidia-docker run -it -v $PWD:/work paddle /work/a.py +当然,您也可以进入到Docker容器中,以交互式的方式执行或调试您的代码: + .. code-block:: bash + docker run -it -v $PWD:/work paddlepaddle/paddle /bin/bash + cd /work + python train.py - 这里`a.py`包含的所有依赖假设都可以在Paddle的运行容器中。如果需要包含更多的依赖、或者需要发布您的应用的镜像,可以编写`Dockerfile`使用`FROM paddledev/paddle:0.10.0` - 创建和发布自己的AI程序镜像。 +**注:PaddlePaddle Docker镜像为了减小体积,默认没有安装vim,您可以在容器中执行 :code:`apt-get install -y vim` 安装后,在容器中编辑代码。** -运行PaddlePaddle Book ---------------------- +.. _docker_run_book: -Jupyter Notebook是一个开源的web程序,大家可以通过它制作和分享带有代码、公式、图表、文字的交互式文档。用户可以通过网页浏览文档。 +使用Docker启动PaddlePaddle Book教程 +------------------------------ +使用Docker可以快速在本地启动一个包含了PaddlePaddle官方Book教程的Jupiter Notebook,可以通过网页浏览。 PaddlePaddle Book是为用户和开发者制作的一个交互式的Jupyter Notebook。 如果您想要更深入了解deep learning,PaddlePaddle Book一定是您最好的选择。 +大家可以通过它阅读教程,或者制作和分享带有代码、公式、图表、文字的交互式文档。 我们提供可以直接运行PaddlePaddle Book的Docker镜像,直接运行: @@ -162,61 +93,37 @@ PaddlePaddle Book是为用户和开发者制作的一个交互式的Jupyter Note 就这么简单,享受您的旅程! -通过Docker容器开发PaddlePaddle ------------------------------- - -开发人员可以在Docker开发镜像中开发PaddlePaddle。这样开发人员可以以一致的方式在不同的平台上工作 - Linux,Mac OS X和Windows。 +.. _docker_run_gpu: -1. 制作PaddlePaddle开发镜像 - - PaddlePaddle每次发布新版本都会发布对应的开发镜像供开发者直接使用。这里介绍如生成造这个开发镜像。 - 生成Docker镜像的方式有两个,一个是直接把一个容器转换成镜像,另一个是创建Dockerfile并运行docker build指令按照Dockerfile生成镜像。第一个方法的好处是简单快捷,适合自己实验,可以快速迭代。第二个方法的好处是Dockerfile可以把整个生成流程描述很清楚,其他人很容易看懂镜像生成过程,持续集成系统也可以简单地复现这个过程。我们采用第二个方法。Dockerfile位于PaddlePaddle repo的根目录。生成生产镜像只需要运行: - - .. code-block:: bash - - git clone https://github.com/PaddlePaddle/Paddle.git - cd Paddle - docker build -t paddle:dev . +使用Docker执行GPU训练 +------------------------------ - docker build这个命令的-t指定了生成的镜像的名字,这里我们用paddle:dev。到此,PaddlePaddle开发镜像就被构建完毕了。 +为了保证GPU驱动能够在镜像里面正常运行,我们推荐使用 +`nvidia-docker `_ 来运行镜像。 +请不要忘记提前在物理机上安装GPU最新驱动。 -2. 制作PaddlePaddle生产镜像 +.. code-block:: bash - 生产镜像的生成分为两步,第一步是运行: + nvidia-docker run -it -v $PWD:/work paddledev/paddle:latest-gpu /bin/bash - .. code-block:: bash - - docker run -v $(pwd):/paddle -e "WITH_GPU=OFF" -e "WITH_AVX=OFF" -e "WITH_TEST=ON" paddle:dev +**注: 如果没有安装nvidia-docker,可以尝试以下的方法,将CUDA库和Linux设备挂载到Docker容器内:** - 以上命令会编译PaddlePaddle,生成运行程序,以及生成创建生产镜像的Dockerfile。所有生成的的文件都在build目录下。“WITH_GPU”控制生成的生产镜像是否支持GPU,“WITH_AVX”控制生成的生产镜像是否支持AVX,”WITH_TEST“控制是否生成单元测试。 +.. code-block:: bash - 第二步是运行: + 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 {}:{}') + docker run ${CUDA_SO} ${DEVICES} -it paddledev/paddle:latest-gpu - .. code-block:: bash - - docker build -t paddle:prod -f build/Dockerfile ./build +关于AVX: - 以上命令会按照生成的Dockerfile把生成的程序拷贝到生产镜像中并做相应的配置,最终生成名为paddle:prod的生产镜像。 +AVX是一种CPU指令集,可以加速PaddlePaddle的计算。最新的PaddlePaddle Docker镜像默认 +是开启AVX编译的,所以,如果您的电脑不支持AVX,需要单独 +`编译 <./build_from_source_cn.rst>`_ PaddlePaddle为no-avx版本。 -3. 运行单元测试 - - 运行以下指令: +以下指令能检查Linux电脑是否支持AVX: .. code-block:: bash - - docker run -it -v $(pwd):/paddle paddle:dev bash -c "cd /paddle/build && ctest" - -文档 ----- - -Paddle的Docker开发镜像带有一个通过 `woboq code browser -`_ 生成的HTML版本的C++源代码,便于用户浏览C++源码。 - -只要在Docker里启动PaddlePaddle的时候给它一个名字,就可以再运行另一个Nginx Docker镜像来服务HTML代码: -.. code-block:: bash - - docker run -d --name paddle-cpu-doc paddle:0.10.0-dev - docker run -d --volumes-from paddle-cpu-doc -p 8088:80 nginx + if cat /proc/cpuinfo | grep -i avx; then echo Yes; else echo No; fi -接着我们就能够打开浏览器在 http://localhost:8088/paddle/ 浏览代码。 +如果输出是No,就需要选择使用no-AVX的镜像 diff --git a/doc/getstarted/build_and_install/docker_install_en.rst b/doc/getstarted/build_and_install/docker_install_en.rst index 94860240f6a4a..4ee55380f09f7 100644 --- a/doc/getstarted/build_and_install/docker_install_en.rst +++ b/doc/getstarted/build_and_install/docker_install_en.rst @@ -1,236 +1,85 @@ PaddlePaddle in Docker Containers ================================= -Docker container is currently the only officially-supported way to -running PaddlePaddle. This is reasonable as Docker now runs on all -major operating systems including Linux, Mac OS X, and Windows. -Please be aware that you will need to change `Dockers settings -`_ to make full use -of your hardware resource on Mac OS X and Windows. +Run PaddlePaddle in Docker container so that you don't need to care about +runtime dependencies, also you can run under Windows system. You can get +tutorials at `here `_ . -Working With Docker -------------------- +If you are using Windows, please refer to +`this `_ +tutorial to start running docker under windows. -Docker is simple as long as we understand a few basic concepts: +After you've read above tutorials you may proceed the following steps. -- *image*: A Docker image is a pack of software. It could contain one or more programs and all their dependencies. For example, the PaddlePaddle's Docker image includes pre-built PaddlePaddle and Python and many Python packages. We can run a Docker image directly, other than installing all these software. We can type +.. _docker_pull: - .. code-block:: bash - - docker images +Pull PaddlePaddle Docker Image +------------------------------ - to list all images in the system. We can also run +Run the following command to download the latest Docker images: .. code-block:: bash - - docker pull paddlepaddle/paddle:0.10.0 - to download a Docker image, paddlepaddle/paddle in this example, - from Dockerhub.com. + docker pull paddlepaddle/paddle -- *container*: considering a Docker image a program, a container is a - "process" that runs the image. Indeed, a container is exactly an - operating system process, but with a virtualized filesystem, network - port space, and other virtualized environment. We can type +For users in China, we provide a faster mirror: .. code-block:: bash - docker run paddlepaddle/paddle:0.10.0 - - to start a container to run a Docker image, paddlepaddle/paddle in this example. + docker pull docker.paddlepaddle.org/paddle -- By default docker container have an isolated file system namespace, - we can not see the files in the host file system. By using *volume*, - mounted files in host will be visible inside docker container. - Following command will mount current dirctory into /data inside - docker container, run docker container from debian image with - command :code:`ls /data`. +Download GPU version images: .. code-block:: bash + docker pull paddlepaddle/paddle:latest-gpu + docker pull docker.paddlepaddle.org/paddle:latest-gpu - docker run --rm -v $(pwd):/data debian ls /data - -Usage of CPU-only and GPU Images ----------------------------------- - -We package PaddlePaddle's compile environment into a Docker image, -called the develop image, it contains all compiling tools that -PaddlePaddle needs. We package compiled PaddlePaddle program into a -Docker image as well, called the production image, it contains all -runtime environment that running PaddlePaddle needs. For each version -of PaddlePaddle, we release both of them. Production image includes -CPU-only version and a CUDA GPU version and their no-AVX versions. - -We put the docker images on `dockerhub.com -`_. You can find the -latest versions under "tags" tab at dockerhub.com. - -** NOTE: If you are in China, you can use our Docker image registry mirror to speed up the download process. To use it, please replace all paddlepaddle/paddle in the commands to docker.paddlepaddle.org/paddle.** - - -1. development image :code:`paddlepaddle/paddle:-dev` - - This image has packed related develop tools and runtime - environment. Users and developers can use this image instead of - their own local computer to accomplish development, build, - releasing, document writing etc. While different version of paddle - may depends on different version of libraries and tools, if you - want to setup a local environment, you must pay attention to the - versions. The development image contains: - - - gcc/clang - - nvcc - - Python - - sphinx - - woboq - - sshd - - Many developers use servers with GPUs, they can use ssh to login to - the server and run :code:`docker exec` to enter the docker - container and start their work. Also they can start a development - docker image with SSHD service, so they can login to the container - and start work. - -2. Production images, this image might have multiple variants: - - - GPU/AVX::code:`paddlepaddle/paddle:-gpu` - - GPU/no-AVX::code:`paddlepaddle/paddle:-gpu-noavx` - - CPU/AVX::code:`paddlepaddle/paddle:` - - CPU/no-AVX::code:`paddlepaddle/paddle:-noavx` - - Please be aware that the CPU-only and the GPU images both use the - AVX instruction set, but old computers produced before 2008 do not - support AVX. The following command checks if your Linux computer - supports AVX: - - .. code-block:: bash - - if cat /proc/cpuinfo | grep -i avx; then echo Yes; else echo No; fi - - **NOTE:versions after 0.10.0 will automatically detect system AVX support, so manual detect is not needed in this case.** - To run the CPU-only image as an interactive container: - - .. code-block:: bash - - docker run -it --rm paddlepaddle/paddle:0.10.0 /bin/bash - - Above method work with the GPU image too -- the recommended way is - using `nvidia-docker `_. - - Please install nvidia-docker first following this `tutorial - `_. - - Now you can run a GPU image: - - .. code-block:: bash - - nvidia-docker run -it --rm paddlepaddle/paddle:0.10.0-gpu /bin/bash - - -Train Model Using Python API ----------------------------- - -Our official docker image provides a runtime for PaddlePaddle -programs. The typical workflow will be as follows: - -Create a directory as workspace: - -.. code-block:: bash - - mkdir ~/workspace - -Edit a PaddlePaddle python program using your favourite editor - -.. code-block:: bash - - emacs ~/workspace/example.py - -Run the program using docker: - -.. code-block:: bash - - docker run --rm -v ~/workspace:/workspace paddlepaddle/paddle:0.10.0 python /workspace/example.py - -Or if you are using GPU for training: - -.. code-block:: bash - - nvidia-docker run --rm -v ~/workspace:/workspace paddlepaddle/paddle:0.10.0-gpu python /workspace/example.py - -Above commands will start a docker container by running :code:`python -/workspace/example.py`. It will stop once :code:`python -/workspace/example.py` finishes. - -Another way is to tell docker to start a :code:`/bin/bash` session and -run PaddlePaddle program interactively: - -.. code-block:: bash - - docker run -it -v ~/workspace:/workspace paddlepaddle/paddle:0.10.0 /bin/bash - # now we are inside docker container - cd /workspace - python example.py - -Running with GPU is identical: - -.. code-block:: bash - - nvidia-docker run -it -v ~/workspace:/workspace paddlepaddle/paddle:0.10.0-gpu /bin/bash - # now we are inside docker container - cd /workspace - python example.py - - -Develop PaddlePaddle or Train Model Using C++ API ---------------------------------------------------- - -We will be using PaddlePaddle development image since it contains all -compiling tools and dependencies. - -1. Build PaddlePaddle develop image - - Use following command to build PaddlePaddle develop image: - - .. code-block:: bash - - git clone https://github.com/PaddlePaddle/Paddle.git && cd Paddle - docker build -t paddle:dev . +If you want to use legacy versions, choose a tag from +`DockerHub `_ +and run: -2. Build PaddlePaddle production image - - There are two steps for building production image, the first step is to run: - - .. code-block:: bash + .. code-block:: bash + docker pull paddlepaddle/paddle:[tag] + # i.e. + docker pull docker.paddlepaddle.org/paddle:0.10.0-gpu - docker run -v $(pwd):/paddle -e "WITH_GPU=OFF" -e "WITH_AVX=OFF" -e "WITH_TEST=ON" paddle:dev +.. _docker_run: - The above command will compile PaddlePaddle and create a Dockerfile for building production image. All the generated files are in the build directory. "WITH_GPU" controls if the generated production image supports GPU. "WITH_AVX" controls if the generated production image supports AVX. "WITH_TEST" controls if the unit test will be generated. +Launch your training program in Docker +------------------------------ - The second step is to run: +Assume that you have already written a PaddlePaddle program +named :code:`train.py` (refer to +`PaddlePaddleBook `_ +for more samples), then run the following command: - .. code-block:: bash + .. code-block:: bash + docker run -it -v $PWD:/work paddlepaddle/paddle /work/train.py - docker build -t paddle:prod -f build/Dockerfile ./build +In the above command, :code:`-it` means run the container interactively; +:code:`-v $PWD:/work` means mount the current directory ($PWD will expand +to current absolute path in Linux) under :code:`/work` in the container. +:code:`paddlepaddle/paddle` to specify image to use; finnally +:code:`/work/train.py` is the command to run inside docker. - The above command will generate the production image by copying the compiled PaddlePaddle program into the image. +Also, you can go into the container shell, run or debug your code +interactively: -3. Run unit test + .. code-block:: bash + docker run -it -v $PWD:/work paddlepaddle/paddle /bin/bash + cd /work + python train.py - Following command will run unit test: +**NOTE: We did not install vim in the default docker image to reduce the image size, you can run :code:`apt-get install -y vim` to install it if you need to edit python files.** - .. code-block:: bash - - docker run -it -v $(pwd):/paddle paddle:dev bash -c "cd /paddle/build && ctest" +.. _docker_run_book: PaddlePaddle Book ------------------ -The Jupyter Notebook is an open-source web application that allows -you to create and share documents that contain live code, equations, -visualizations and explanatory text in a single browser. - -PaddlePaddle Book is an interactive Jupyter Notebook for users and developers. -We already exposed port 8888 for this book. If you want to +You can create a container serving PaddlePaddle Book using Jupiter Notebook in +one minute using Docker. PaddlePaddle Book is an interactive Jupyter Notebook +for users and developers.If you want to dig deeper into deep learning, PaddlePaddle Book definitely is your best choice. We provide a packaged book image, simply issue the command: @@ -247,24 +96,37 @@ Then, you would back and paste the address into the local browser: That's all. Enjoy your journey! +.. _docker_run_gpu: -Documentation -------------- +Train with Docker with GPU +------------------------------ -Paddle Docker images include an HTML version of C++ source code -generated using `woboq code browser -`_. This makes it easy -for users to browse and understand the C++ source code. +We recommend using +`nvidia-docker `_ +to run GPU training jobs. Please ensure you have latest +GPU driver installed before move on. -As long as we give the Paddle Docker container a name, we can run an -additional Nginx Docker container to serve the volume from the Paddle -container: +.. code-block:: bash + + nvidia-docker run -it -v $PWD:/work paddledev/paddle:latest-gpu /bin/bash + +**NOTE: If you don't have nvidia-docker installed, try the following method to mount CUDA libs and devices into the container.** .. code-block:: bash - docker run -d --name paddle-cpu-doc paddle: - docker run -d --volumes-from paddle-cpu-doc -p 8088:80 nginx + 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 {}:{}') + docker run ${CUDA_SO} ${DEVICES} -it paddledev/paddle:latest-gpu + +About AVX: +AVX is a kind of CPU instruction can accelerate PaddlePaddle's calculations. +The latest PaddlePaddle Docker image turns AVX on by default, so, if your +computer doesn't support AVX, you'll probably need to +`build <./build_from_source_en.rst>`_ with :code:`WITH_AVX=OFF`. -Then we can direct our Web browser to the HTML version of source code -at http://localhost:8088/paddle/ +The following command will tell you whether your computer supports AVX. + + .. code-block:: bash + + if cat /proc/cpuinfo | grep -i avx; then echo Yes; else echo No; fi diff --git a/doc/getstarted/build_and_install/index_cn.rst b/doc/getstarted/build_and_install/index_cn.rst index dd9923697ab85..e68d677412d48 100644 --- a/doc/getstarted/build_and_install/index_cn.rst +++ b/doc/getstarted/build_and_install/index_cn.rst @@ -1,17 +1,36 @@ 安装与编译 ========== +.. _quick_install: + +快速安装 +++++++++ + +PaddlePaddle支持使用pip快速安装,目前支持CentOS 6以上, Ubuntu 14.04以及MacOS 10.12,并安装有Python2.7。 +执行下面的命令完成快速安装: + + .. code-block:: bash + + pip install paddlepaddle + +如果需要安装支持GPU的版本,需要执行: + + .. code-block:: bash + + pip install paddlepaddle-gpu + .. _install_steps: 安装流程 ++++++++ -PaddlePaddle提供Docker镜像来部署环境。 +PaddlePaddle提供pip和Docker的安装方式: .. toctree:: :maxdepth: 1 - - docker_install_cn.rst + + pip_install_cn.rst + docker_install_cn.rst 编译流程 @@ -19,9 +38,9 @@ PaddlePaddle提供Docker镜像来部署环境。 .. warning:: - 编译流程主要推荐高级用户查看,普通用户请走安装流程。 + 建议直接使用上述安装流程,方便快速安装。只有在遇到需要独立定制的二进制时才需要编译。 .. toctree:: :maxdepth: 1 - cmake/build_from_source_cn.rst + build_from_source_cn.rst diff --git a/doc/getstarted/build_and_install/index_en.rst b/doc/getstarted/build_and_install/index_en.rst index 8a53588e0439d..bf8e01a35c01c 100644 --- a/doc/getstarted/build_and_install/index_en.rst +++ b/doc/getstarted/build_and_install/index_en.rst @@ -1,20 +1,46 @@ Install and Build ================= -Install PaddlePaddle +.. _quick_install: + +Quick Install ---------------------- -.. toctree:: - :maxdepth: 1 +You can use pip to install PaddlePaddle using a single command, supports +CentOS 6 above, Ubuntu 14.04 above or MacOS 10.12, with Python 2.7 installed. +Simply run the following command to install: + + .. code-block:: bash + + pip install paddlepaddle + +If you need to install GPU version, run: + + .. code-block:: bash + + pip install paddlepaddle-gpu + + +.. _install_steps: + +Install Steps +++++++++ + +You can choose either pip or Docker to complete your install: + +.. toctree:: + :maxdepth: 1 + + pip_install_en.rst + docker_install_en.rst - docker_install_en.rst Build from Source ----------------- .. warning:: - Please use :code:`docker` image to install paddle. The building guide is used for hacking or contributing PaddlePaddle source code. + We recommend to directly install via above installation steps, you'll only need to build PaddlePaddle from source when you need a modifed binary. .. toctree:: :maxdepth: 1 diff --git a/doc/getstarted/build_and_install/pip_install_cn.rst b/doc/getstarted/build_and_install/pip_install_cn.rst new file mode 100644 index 0000000000000..e4bba7b21ab2e --- /dev/null +++ b/doc/getstarted/build_and_install/pip_install_cn.rst @@ -0,0 +1,77 @@ +使用pip安装PaddlePaddle +================================ + +PaddlePaddle可以使用常用的Python包管理工具 +`pip `_ +完成安装,并可以在大多数主流的Linux操作系统以及MacOS上执行。 + +.. _pip_install: + +使用pip安装 +------------------------------ + + +执行下面的命令即可在当前机器上安装PaddlePaddle的运行时环境,并自动下载安装依赖软件。 + + .. code-block:: bash + + pip install paddlepaddle + + +如果需要安装支持GPU的版本,需要执行: + + .. code-block:: bash + + pip install paddlepaddle-gpu + +如果需要获取并安装最新的(开发分支)PaddlePaddle,可以从我们的CI系统中下载最新的whl安装包并安装,在下面的链接中,使用guest登陆,然后点击Artifact标签,可以找到最新的whl安装包: + +- `CPU版本 `_ + +- `GPU CUDA-7.5 CUDNN-5版本 `_ + +- `GPU CUDA-8.0 CUDNN-5版本 `_ + +- `GPU CUDA-8.0 CUDNN-7版本 `_ + +.. _pip_dependency: + +运行环境依赖 +------------------------------ + +PaddlePaddle安装包由于不仅仅包含.py程序,而且包含了C++编写的部分,所以我们确保发布的二进制包可以支持主流的Linux操作系统,比如CentOS 6以上,Ubuntu 14.04以上,MacOS 10.12以上。 + +PaddlePaddle发布的安装包会尽量对齐 `manylinux1 `_ 标准,通常使用CentOS 5作为编译环境。但由于CUDA库通常需要CentOS 6以上,而且CentOS 5即将停止维护,所以我们默认使用CentOS 6作为标准编译环境。 + +.. csv-table:: PaddlePaddle环境依赖 + :header: "依赖", "版本", "说明" + :widths: 10, 15, 30 + + "操作系统", "Linux, MacOS", "CentOS 6以上,Ubuntu 14.04以上,MacOS 10.12以上" + "Python", "2.7.x", "暂时不支持Python3" + "libc.so", "GLIBC_2.7", "glibc至少包含GLIBC_2.7以上的符号" + "libstdc++.so", "GLIBCXX_3.4.11, CXXABI_1.3.3", "至少包含GLIBCXX_3.4.11, CXXABI_1.3.3以上的符号" + "libgcc_s.so", "GCC_3.3", "至少包含GCC_3.3以上的符号" + +.. _pip_faq: + +安装常见问题和解决方法 +------------------------------ + +- paddlepaddle*.whl is not a supported wheel on this platform. + + 出现这个问题的主要原因是,没有找到和当前系统匹配的paddlepaddle安装包。请检查Python版本是否为2.7系列。另外最新的pip官方源中的安装包默认是manylinux1标准,需要使用最新的pip (>9.0.0) 才可以安装。可以使用下面的命令更新您的pip: + + .. code-block:: bash + + pip install --upgrade pip + + 如果仍然存在问题,可以执行: + + .. code-block:: bash + + python -c "import pip; print(pip.pep425tags.get_supported())" + + 获取当前系统支持的安装包格式,并检查和需安装的包是否匹配。pypi安装包可以在 `这个 `_ 链接中找到。 + + 如果系统支持的是 linux_x86_64 而安装包是 manylinux1_x86_64 ,需要升级pip版本到最新; 如果系统支持 manylinux1_x86_64 而安装包(本地)是 linux_x86_64 ,可以重命名这个whl包为 manylinux1_x86_64 再安装。 \ No newline at end of file diff --git a/doc/getstarted/build_and_install/pip_install_en.rst b/doc/getstarted/build_and_install/pip_install_en.rst new file mode 100644 index 0000000000000..b9fa6dd9edf2b --- /dev/null +++ b/doc/getstarted/build_and_install/pip_install_en.rst @@ -0,0 +1,96 @@ +Install PaddlePaddle Using pip +================================ + +You can use current widely used Python package management +tool `pip `_ +to install PaddlePaddle. This method can be used in +most of current Linux systems or MacOS. + +.. _pip_install: + +Install Using pip +------------------------------ + +Run the following command to install PaddlePaddle on the current +machine, it will also download requirements. + + .. code-block:: bash + + pip install paddlepaddle + + +If you wish to install GPU version, just run: + + .. code-block:: bash + + pip install paddlepaddle-gpu + +If you wish to install the latest develop branch PaddlePaddle, +you can download the latest whl package from our CI system. Access +the below links, log in as guest, then click at the "Artifact" +tab, you'll find the download link of whl packages. + +- `CPU Only Version `_ + +- `GPU CUDA-7.5 CUDNN-5 Version `_ + +- `GPU CUDA-8.0 CUDNN-5 Version `_ + +- `GPU CUDA-8.0 CUDNN-7 Version `_ + +.. _pip_dependency: + +Runtime Dependency +------------------------------ + +PaddlePaddle installation packages (whl) does not only contain .py files, +but also binaries built from C++ code, we ensure that PaddlePaddle can +run on current mainline Linux distributions, like CentOS 6, Ubuntu 14.04 +and MacOS 10.12. + +PaddlePaddle whl packages are trying to satisfy +`manylinux1 `_ +standard, which uses CentOS 5 as default build environment. But CUDA libraries +seems only run on CentOS 6 at least, also, CentOS 5 is about to end its lifetime, +so we use CentOS 6 as default build environment. + +.. csv-table:: PaddlePaddle Runtime Deps + :header: "Dependency", "version", "description" + :widths: 10, 15, 30 + + "OS", "Linux, MacOS", "CentOS 6 or later,Ubuntu 14.04 or later,MacOS 10.12 or later" + "Python", "2.7.x", "Currently Python3 is not supported" + "libc.so", "GLIBC_2.7", "glibc at least include GLIBC_2.7 symbols" + "libstdc++.so", "GLIBCXX_3.4.11, CXXABI_1.3.3", "At least include GLIBCXX_3.4.11, CXXABI_1.3.3 symbols" + "libgcc_s.so", "GCC_3.3", "At least include GCC_3.3 symbols" + +.. _pip_faq: + +FAQ +------------------------------ + +- paddlepaddle*.whl is not a supported wheel on this platform. + + The main cause of this issue is that your current platform is + not supported. Please check that you are using Python 2.7 series. + Besides, pypi only supports manylinux1 standard, you'll need to + upgrade your pip to >9.0.0. Then run the below command: + + .. code-block:: bash + + pip install --upgrade pip + + If the problem still exists, run the following command: + + .. code-block:: bash + + python -c "import pip; print(pip.pep425tags.get_supported())" + + Then you'll get supported package suffixes, then check if it matches + the file name of the whl package. You can find default whl package at + `here `_ + + If your system supports linux_x86_64 but the whl package is manylinux1_x86_64, + you'll need to update pip to the latest version; If your system supports + manylinux1_x86_64 but the whl package is linux_x86_64 you can rename the + file to manylinux1_x86_64 suffix and then install. From 2e46c35afc0a0ecd0fab9d5470d1ab10bab14cf5 Mon Sep 17 00:00:00 2001 From: typhoonzero Date: Wed, 22 Nov 2017 22:16:38 +0800 Subject: [PATCH 2/7] follow comments --- doc/getstarted/basic_usage/index_cn.rst | 108 ------------------ doc/getstarted/basic_usage/index_en.rst | 101 ---------------- doc/getstarted/basic_usage/parameters.png | Bin 44469 -> 0 bytes .../build_from_source_cn.rst | 71 ++++++------ .../build_from_source_en.rst | 43 +++---- .../build_and_install/docker_install_cn.rst | 44 ++++--- .../build_and_install/docker_install_en.rst | 40 ++++--- doc/getstarted/build_and_install/index_cn.rst | 23 +--- doc/getstarted/build_and_install/index_en.rst | 25 +--- .../build_and_install/pip_install_cn.rst | 21 ++-- .../build_and_install/pip_install_en.rst | 16 +-- doc/getstarted/index_cn.rst | 59 +++++++++- doc/getstarted/index_en.rst | 59 +++++++++- 13 files changed, 250 insertions(+), 360 deletions(-) delete mode 100644 doc/getstarted/basic_usage/index_cn.rst delete mode 100644 doc/getstarted/basic_usage/index_en.rst delete mode 100644 doc/getstarted/basic_usage/parameters.png diff --git a/doc/getstarted/basic_usage/index_cn.rst b/doc/getstarted/basic_usage/index_cn.rst deleted file mode 100644 index b473944fc7fb8..0000000000000 --- a/doc/getstarted/basic_usage/index_cn.rst +++ /dev/null @@ -1,108 +0,0 @@ -经典的线性回归任务 -================== - -PaddlePaddle是源于百度的一个深度学习平台。这份简短的介绍将向你展示如何利用PaddlePaddle来解决一个经典的线性回归问题。 - -任务简介 --------- - -我们展示如何用PaddlePaddle解决 `单变量的线性回归 `_ 问题。线性回归的输入是一批点 `(x, y)` ,其中 `y = wx + b + ε`, 而 ε 是一个符合高斯分布的随机变量。线性回归的输出是从这批点估计出来的参数 `w` 和 `b` 。 - -一个例子是房产估值。我们假设房产的价格(y)是其大小(x)的一个线性函数,那么我们可以通过收集市场上房子的大小和价格,用来估计线性函数的参数w 和 b。 - -准备数据 ------------ - -假设变量 `x` 和 `y` 的真实关系为: `y = 2x + 0.3 + ε`,这里展示如何使用观测数据来拟合这一线性关系。首先,Python代码将随机产生2000个观测点,作为线性回归的输入。下面脚本符合PaddlePaddle期待的读取数据的Python程序的模式。 - -.. code-block:: python - - # dataprovider.py - from paddle.trainer.PyDataProvider2 import * - import random - - # 定义输入数据的类型: 2个浮点数 - @provider(input_types=[dense_vector(1), dense_vector(1)],use_seq=False) - def process(settings, input_file): - for i in xrange(2000): - x = random.random() - yield [x], [2*x+0.3] - -训练模型 ------------ - -为了还原 `y = 2x + 0.3`,我们先从一条随机的直线 `y' = wx + b` 开始,然后利用观测数据调整 `w` 和 `b` 使得 `y'` 和 `y` 的差距不断减小,最终趋于接近。这个过程就是模型的训练过程,而 `w` 和 `b` 就是模型的参数,即我们的训练目标。 - -在PaddlePaddle里,该模型的网络配置如下。 - -.. code-block:: python - - # trainer_config.py - from paddle.trainer_config_helpers import * - - # 1. 定义数据来源,调用上面的process函数获得观测数据 - data_file = 'empty.list' - with open(data_file, 'w') as f: f.writelines(' ') - define_py_data_sources2(train_list=data_file, test_list=None, - module='dataprovider', obj='process',args={}) - - # 2. 学习算法。控制如何改变模型参数 w 和 b - settings(batch_size=12, learning_rate=1e-3, learning_method=MomentumOptimizer()) - - # 3. 神经网络配置 - x = data_layer(name='x', size=1) - y = data_layer(name='y', size=1) - # 线性计算网络层: ȳ = wx + b - ȳ = fc_layer(input=x, param_attr=ParamAttr(name='w'), size=1, act=LinearActivation(), bias_attr=ParamAttr(name='b')) - # 计算误差函数,即 ȳ 和真实 y 之间的距离 - cost = square_error_cost(input= ȳ, label=y) - outputs(cost) - - -这段简短的配置展示了PaddlePaddle的基本用法: - -- 第一部分定义了数据输入。一般情况下,PaddlePaddle先从一个文件列表里获得数据文件地址,然后交给用户自定义的函数(例如上面的 `process`函数)进行读入和预处理从而得到真实输入。本文中由于输入数据是随机生成的不需要读输入文件,所以放一个空列表(`empty.list`)即可。 - -- 第二部分主要是选择学习算法,它定义了模型参数改变的规则。PaddlePaddle提供了很多优秀的学习算法,这里使用一个基于momentum的随机梯度下降(SGD)算法,该算法每批量(batch)读取12个采样数据进行随机梯度计算来更新更新。 - -- 最后一部分是神经网络的配置。由于PaddlePaddle已经实现了丰富的网络层,所以很多时候你需要做的只是定义正确的网络层并把它们连接起来。这里使用了三种网络单元: - - - **数据层**:数据层 `data_layer` 是神经网络的入口,它读入数据并将它们传输到接下来的网络层。这里数据层有两个,分别对应于变量 `x` 和 `y`。 - - **全连接层**:全连接层 `fc_layer` 是基础的计算单元,这里利用它建模变量之间的线性关系。计算单元是神经网络的核心,PaddlePaddle支持大量的计算单元和任意深度的网络连接,从而可以拟合任意的函数来学习复杂的数据关系。 - - **回归误差代价层**:回归误差代价层 `square_error_cost` 是众多误差代价函数层的一种,它们在训练过程作为网络的出口,用来计算模型的误差,是模型参数优化的目标函数。 - -定义了网络结构并保存为 `trainer_config.py` 之后,运行以下训练命令: - -.. code-block:: bash - - paddle train --config=trainer_config.py --save_dir=./output --num_passes=30 - -PaddlePaddle将在观测数据集上迭代训练30轮,并将每轮的模型结果存放在 `./output` 路径下。从输出日志可以看到,随着轮数增加误差代价函数的输出在不断的减小,这意味着模型在训练数据上不断的改进,直到逼近真实解:` y = 2x + 0.3 ` - -模型检验 ------------ - -训练完成后,我们希望能够检验模型的好坏。一种常用的做法是用学习的模型对另外一组测试数据进行预测,评价预测的效果。在这个例子中,由于已经知道了真实答案,我们可以直接观察模型的参数是否符合预期来进行检验。 - -PaddlePaddle将每个模型参数作为一个numpy数组单独存为一个文件,所以可以利用如下方法读取模型的参数。 - -.. code-block:: python - - import numpy as np - import os - - def load(file_name): - with open(file_name, 'rb') as f: - f.read(16) # skip header for float type. - return np.fromfile(f, dtype=np.float32) - - print 'w=%.6f, b=%.6f' % (load('output/pass-00029/w'), load('output/pass-00029/b')) - # w=1.999743, b=0.300137 - -.. image:: ./parameters.png - :align: center - :scale: 80 % - -从图中可以看到,虽然 `w` 和 `b` 都使用随机值初始化,但在起初的几轮训练中它们都在快速逼近真实值,并且后续仍在不断改进,使得最终得到的模型几乎与真实模型一致。 - -这样,我们用PaddlePaddle解决了单变量线性回归问题, 包括数据输入、模型训练和最后的结果验证。 diff --git a/doc/getstarted/basic_usage/index_en.rst b/doc/getstarted/basic_usage/index_en.rst deleted file mode 100644 index 2cc438ebbe0f9..0000000000000 --- a/doc/getstarted/basic_usage/index_en.rst +++ /dev/null @@ -1,101 +0,0 @@ -Simple Linear Regression -======================== - -PaddlePaddle is a deep learning platform open-sourced by Baidu. With PaddlePaddle, you can easily train a classic neural network within a couple lines of configuration, or you can build sophisticated models that provide state-of-the-art performance on difficult learning tasks like sentiment analysis, machine translation, image caption and so on. - -Problem Background ------------------- - -Now, to give you a hint of what using PaddlePaddle looks like, let's start with a fundamental learning problem - `simple linear regression `_: you have observed a set of two-dimensional data points of ``X`` and ``Y``, where ``X`` is an explanatory variable and ``Y`` is corresponding dependent variable, and you want to recover the underlying correlation between ``X`` and ``Y``. Linear regression can be used in many practical scenarios. For example, ``X`` can be a variable about house size, and ``Y`` a variable about house price. You can build a model that captures relationship between them by observing real estate markets. - -Prepare the Data ------------------ - -Suppose the true relationship can be characterized as ``Y = 2X + 0.3``, let's see how to recover this pattern only from observed data. Here is a piece of python code that feeds synthetic data to PaddlePaddle. The code is pretty self-explanatory, the only extra thing you need to add for PaddlePaddle is a definition of input data types. - - .. code-block:: python - - # dataprovider.py - from paddle.trainer.PyDataProvider2 import * - import random - - # define data types of input: 2 real numbers - @provider(input_types=[dense_vector(1), dense_vector(1)],use_seq=False) - def process(settings, input_file): - for i in xrange(2000): - x = random.random() - yield [x], [2*x+0.3] - -Train a NeuralNetwork ----------------------- - -To recover this relationship between ``X`` and ``Y``, we use a neural network with one layer of linear activation units and a square error cost layer. Don't worry if you are not familiar with these terminologies, it's just saying that we are starting from a random line ``Y' = wX + b`` , then we gradually adapt ``w`` and ``b`` to minimize the difference between ``Y'`` and ``Y``. Here is what it looks like in PaddlePaddle: - - .. code-block:: python - - # trainer_config.py - from paddle.trainer_config_helpers import * - - # 1. read data. Suppose you saved above python code as dataprovider.py - data_file = 'empty.list' - with open(data_file, 'w') as f: f.writelines(' ') - define_py_data_sources2(train_list=data_file, test_list=None, - module='dataprovider', obj='process',args={}) - - # 2. learning algorithm - settings(batch_size=12, learning_rate=1e-3, learning_method=MomentumOptimizer()) - - # 3. Network configuration - x = data_layer(name='x', size=1) - y = data_layer(name='y', size=1) - y_predict = fc_layer(input=x, param_attr=ParamAttr(name='w'), size=1, act=LinearActivation(), bias_attr=ParamAttr(name='b')) - cost = square_error_cost(input=y_predict, label=y) - outputs(cost) - -Some of the most fundamental usages of PaddlePaddle are demonstrated: - -- The first part shows how to feed data into PaddlePaddle. In general cases, PaddlePaddle reads raw data from a list of files, and then do some user-defined process to get real input. In this case, we only need to create a placeholder file since we are generating synthetic data on the fly. - -- The second part describes learning algorithm. It defines in what ways adjustments are made to model parameters. PaddlePaddle provides a rich set of optimizers, but a simple momentum based optimizer will suffice here, and it processes 12 data points each time. - -- Finally, the network configuration. It usually is as simple as "stacking" layers. Three kinds of layers are used in this configuration: - - **Data Layer**: a network always starts with one or more data layers. They provide input data to the rest of the network. In this problem, two data layers are used respectively for ``X`` and ``Y``. - - **FC Layer**: FC layer is short for Fully Connected Layer, which connects all the input units to current layer and does the actual computation specified as activation function. Computation layers like this are the fundamental building blocks of a deeper model. - - **Cost Layer**: in training phase, cost layers are usually the last layers of the network. They measure the performance of current model, and provide guidence to adjust parameters. - -Now that everything is ready, you can train the network with a simple command line call: - - .. code-block:: bash - - paddle train --config=trainer_config.py --save_dir=./output --num_passes=30 - - -This means that PaddlePaddle will train this network on the synthectic dataset for 30 passes, and save all the models under path ``./output``. You will see from the messages printed out during training phase that the model cost is decreasing as time goes by, which indicates we are getting a closer guess. - - -Evaluate the Model -------------------- - -Usually, a different dataset that left out during training phase should be used to evalute the models. However, we are lucky enough to know the real answer: ``w=2, b=0.3``, thus a better option is to check out model parameters directly. - -In PaddlePaddle, training is just to get a collection of model parameters, which are ``w`` and ``b`` in this case. Each parameter is saved in an individual file in the popular ``numpy`` array format. Here is the code that reads parameters from last pass. - - .. code-block:: python - - import numpy as np - import os - - def load(file_name): - with open(file_name, 'rb') as f: - f.read(16) # skip header for float type. - return np.fromfile(f, dtype=np.float32) - - print 'w=%.6f, b=%.6f' % (load('output/pass-00029/w'), load('output/pass-00029/b')) - # w=1.999743, b=0.300137 - - .. image:: parameters.png - :align: center - -Although starts from a random guess, you can see that value of ``w`` changes quickly towards 2 and ``b`` changes quickly towards 0.3. In the end, the predicted line is almost identical with real answer. - -There, you have recovered the underlying pattern between ``X`` and ``Y`` only from observed data. diff --git a/doc/getstarted/basic_usage/parameters.png b/doc/getstarted/basic_usage/parameters.png deleted file mode 100644 index 2ec67480951e21f0400bce1c34b3108dcd65c18c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44469 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 j{~Ea`=`_ 以及GCC, G++作为编译 git clone https://github.com/PaddlePaddle/Paddle.git cd Paddle - # 如果使用Docker编译环境,执行下面的命令 - docker run -it -v $PWD:/paddle -e "WITH_GPU=ON" -e "WITH_TESTING=OFF" paddlepaddle/paddle_manylinux_devel:cuda8.0_cudnn5 bash -x paddle/scripts/docker/build.sh + # 如果使用Docker编译环境,执行下面的命令编译CPU-Only的二进制 + docker run -it -v $PWD:/paddle -e "WITH_GPU=OFF" -e "WITH_TESTING=OFF" paddlepaddle/paddle_manylinux_devel:cuda8.0_cudnn5 bash -x paddle/scripts/docker/build.sh # 如果不使用Docker编译环境,执行下面的命令 mkdir build cd build - cmake -DWITH_GPU=ON -DWITH_TESTING=OFF .. + cmake -DWITH_GPU=OFF -DWITH_TESTING=OFF .. make @@ -56,64 +56,57 @@ PaddlePaddle编译需要使用到下面的依赖(包含但不限于),其 编译选项 ---------------- -PaddlePaddle的编译选项,包括生成CPU/GPU二进制文件、链接何种BLAS库等。用户可在调用cmake的时候设置它们,详细的cmake使用方法可以参考 `官方文档 `_ 。 +PaddlePaddle的编译选项,包括生成CPU/GPU二进制文件、链接何种BLAS库等。 +用户可在调用cmake的时候设置它们,详细的cmake使用方法可以参考 +`官方文档 `_ 。 -.. _build_options_bool: - -Bool型的编译选项 ----------------- - -用户可在cmake的命令行中,通过使用 ``-D`` 命令设置该类编译选项,例如 +在cmake的命令行中,通过使用 ``-D`` 命令设置该类编译选项,例如: .. code-block:: bash cmake .. -DWITH_GPU=OFF -.. csv-table:: Bool型的编译选项 +.. csv-table:: 编译选项说明 :header: "选项", "说明", "默认值" :widths: 1, 7, 2 - "WITH_GPU", "是否支持GPU。", "是" - "WITH_DOUBLE", "是否使用双精度浮点数。", "否" - "WITH_DSO", "是否运行时动态加载CUDA动态库,而非静态加载CUDA动态库。", "是" - "WITH_AVX", "是否编译含有AVX指令集的PaddlePaddle二进制文件", "是" - "WITH_PYTHON", "是否内嵌PYTHON解释器。", "是" - "WITH_STYLE_CHECK", "是否编译时进行代码风格检查", "是" - "WITH_TESTING", "是否开启单元测试", "是" - "WITH_DOC", "是否编译中英文文档", "否" - "WITH_SWIG_PY", "是否编译PYTHON的SWIG接口,该接口可用于预测和定制化训练", "自动" - "WITH_GOLANG", "是否编译go语言的可容错parameter server", "是" - -.. _build_options_blas: - -BLAS/CUDA/Cudnn的编译选项 --------------------------- + "WITH_GPU", "是否支持GPU", "ON" + "WITH_C_API", "是否仅编译CAPI", "OFF" + "WITH_DOUBLE", "是否使用双精度浮点数", "OFF" + "WITH_DSO", "是否运行时动态加载CUDA动态库,而非静态加载CUDA动态库。", "ON" + "WITH_AVX", "是否编译含有AVX指令集的PaddlePaddle二进制文件", "ON" + "WITH_PYTHON", "是否内嵌PYTHON解释器", "ON" + "WITH_STYLE_CHECK", "是否编译时进行代码风格检查", "ON" + "WITH_TESTING", "是否开启单元测试", "ON" + "WITH_DOC", "是否编译中英文文档", "OFF" + "WITH_SWIG_PY", "是否编译PYTHON的SWIG接口,该接口可用于预测和定制化训练", "Auto" + "WITH_GOLANG", "是否编译go语言的可容错parameter server", "ON" + "WITH_MKL", "是否使用MKL数学库,如果为否则是用OpenBLAS", "ON" + BLAS +++++ -PaddlePaddle支持以下任意一种BLAS库:`MKL `_ ,`ATLAS `_ ,`OpenBlAS `_ 和 `REFERENCE BLAS `_ 。 +PaddlePaddle支持 `MKL `_ 和 +`OpenBlAS `_ 两种BLAS库。默认使用MKL。如果使用MKL并且机器含有AVX2指令集, +还会下载MKL-DNN数学库,详细参考 `这里 `_ 。 -.. csv-table:: BLAS路径相关的编译选项 - :header: "编译选项", "描述", "注意" - :widths: 1, 2, 7 - - "MKL_ROOT", "${MKL_ROOT}/include下需要包含mkl.h,${MKL_ROOT}/lib目录下需要包含mkl_core,mkl_sequential和mkl_intel_lp64三个库。" - "ATLAS_ROOT", "${ATLAS_ROOT}/include下需要包含cblas.h,${ATLAS_ROOT}/lib下需要包含cblas和atlas两个库。" - "OPENBLAS_ROOT", "${OPENBLAS_ROOT}/include下需要包含cblas.h,${OPENBLAS_ROOT}/lib下需要包含openblas库。" - "REFERENCE_CBLAS_ROOT", "${REFERENCE_CBLAS_ROOT}/include下需要包含cblas.h,${REFERENCE_CBLAS_ROOT}/lib下需要包含cblas库。" +如果关闭MKL,则会使用OpenBLAS作为BLAS库。 -CUDA/Cudnn +CUDA/cuDNN +++++++++++ -PaddlePaddle可以使用cudnn v2之后的任何一个版本来编译运行,但尽量请保持编译和运行使用的cudnn是同一个版本。 我们推荐使用最新版本的cudnn v5.1。 +PaddlePaddle在编译时/运行时会自动找到系统中安装的CUDA和cuDNN库进行编译和执行。 + +PaddlePaddle可以使用cuDNN v5.1之后的任何一个版本来编译运行,但尽量请保持编译和运行使用的cuDNN是同一个版本。 +我们推荐使用最新版本的cuDNN。 编译选项的设置 ++++++++++++++ -PaddePaddle通过编译时指定路径来实现引用各种BLAS/CUDA/Cudnn库。cmake编译时,首先在系统路径(/usr/lib\:/usr/local/lib)中搜索这几个库,同时也会读取相关路径变量来进行搜索。 通过使用 ``-D`` 命令可以设置,例如 +PaddePaddle通过编译时指定路径来实现引用各种BLAS/CUDA/cuDNN库。cmake编译时,首先在系统路径(/usr/lib\:/usr/local/lib)中搜索这几个库,同时也会读取相关路径变量来进行搜索。 通过使用 ``-D`` 命令可以设置,例如 .. code-block:: bash - cmake .. -DMKL_ROOT=/opt/mkl/ -DCUDNN_ROOT=/opt/cudnnv5 + cmake .. -DWITH_GPU=ON -DWITH_TESTING=OFF -DCUDNN_ROOT=/opt/cudnnv5 注意:这几个编译选项的设置,只在第一次cmake的时候有效。如果之后想要重新设置,推荐清理整个编译目录(``rm -rf``)后,再指定。 diff --git a/doc/getstarted/build_and_install/build_from_source_en.rst b/doc/getstarted/build_and_install/build_from_source_en.rst index 80dfb8c468b7d..02d5ab3bb8125 100644 --- a/doc/getstarted/build_and_install/build_from_source_en.rst +++ b/doc/getstarted/build_and_install/build_from_source_en.rst @@ -16,12 +16,12 @@ Then run: git clone https://github.com/PaddlePaddle/Paddle.git cd Paddle - # run the following command if you are using docker - docker run -it -v $PWD:/paddle -e "WITH_GPU=ON" -e "WITH_TESTING=OFF" paddlepaddle/paddle_manylinux_devel:cuda8.0_cudnn5 bash -x paddle/scripts/docker/build.sh + # run the following command to build CPU-Only binaries if you are using docker + docker run -it -v $PWD:/paddle -e "WITH_GPU=OFF" -e "WITH_TESTING=OFF" paddlepaddle/paddle_manylinux_devel:cuda8.0_cudnn5 bash -x paddle/scripts/docker/build.sh # else run these commands mkdir build cd build - cmake -DWITH_GPU=ON -DWITH_TESTING=OFF .. + cmake -DWITH_GPU=OFF -DWITH_TESTING=OFF .. make When the compile finishes, you can get the output whl package under @@ -78,6 +78,7 @@ You can add :code:`-D` argument to pass such options, like: :widths: 1, 7, 2 "WITH_GPU", "Build with GPU support", "ON" + "WITH_C_API", "Build only CAPI", "OFF" "WITH_DOUBLE", "Build with double precision", "OFF" "WITH_DSO", "Dynamically load CUDA libraries", "ON" "WITH_AVX", "Build with AVX support", "ON" @@ -87,34 +88,26 @@ You can add :code:`-D` argument to pass such options, like: "WITH_DOC", "Build documentaions", "OFF" "WITH_SWIG_PY", "Build Python SWIG interface for V2 API", "Auto" "WITH_GOLANG", "Build fault-tolerant parameter server written in go", "ON" + "WITH_MKL", "Use MKL as BLAS library, else use OpenBLAS", "ON" -.. _build_options_blas: -BLAS/CUDA/Cudnn Options --------------------------- BLAS +++++ -You can build PaddlePaddle with any of the below BLAS libraries: -`MKL `_ , -`ATLAS `_ , -`OpenBlAS `_ and -`REFERENCE BLAS `_ . - -.. csv-table:: BLAS Options - :header: "Option", "Description" - :widths: 1, 7 - - "MKL_ROOT", "${MKL_ROOT}/include must have mkl.h, ${MKL_ROOT}/lib must have mkl_core, mkl_sequential and mkl_intel_lp64 libs." - "ATLAS_ROOT", "${ATLAS_ROOT}/include must have cblas.h,${ATLAS_ROOT}/lib must have cblas and atlas libs" - "OPENBLAS_ROOT", "${OPENBLAS_ROOT}/include must have cblas.h,${OPENBLAS_ROOT}/lib must have OpenBlas libs." - "REFERENCE_CBLAS_ROOT", "${REFERENCE_CBLAS_ROOT}/include must have cblas.h,${REFERENCE_CBLAS_ROOT}/lib must have cblas lib." - -CUDA/Cudnn +PaddlePaddle supports `MKL `_ and +`OpenBlAS `_ as BLAS library。By default it uses MKL. +If you are using MKL and your machine supports AVX2, MKL-DNN will also be downloaded +and used, for more `details `_ . + +If you choose not to use MKL, then OpenBlAS will be used. + +CUDA/cuDNN +++++++++++ -PaddlePaddle can build with any version later than Cudnn v2, and we intend to -keep on with latest cudnn versions. Be sure to run with the same version of cudnn +PaddlePaddle will automatically find CUDA and cuDNN when compiling and running. + +PaddlePaddle can build with any version later than cuDNN v5.1, and we intend to +keep on with latest cuDNN versions. Be sure to run with the same version of cuDNN you built. Pass Compile Options @@ -127,7 +120,7 @@ passed to cmake, i.e. .. code-block:: bash - cmake .. -DMKL_ROOT=/opt/mkl/ -DCUDNN_ROOT=/opt/cudnnv5 + cmake .. -DWITH_GPU=ON -DWITH_TESTING=OFF -DCUDNN_ROOT=/opt/cudnnv5 **NOTE: These options only take effect when running cmake for the first time, you need to clean the cmake cache or clean the build directory if you want to change it.** diff --git a/doc/getstarted/build_and_install/docker_install_cn.rst b/doc/getstarted/build_and_install/docker_install_cn.rst index 03a83627930e6..c03352562e2a2 100644 --- a/doc/getstarted/build_and_install/docker_install_cn.rst +++ b/doc/getstarted/build_and_install/docker_install_cn.rst @@ -30,29 +30,39 @@ 下载GPU版本的Docker镜像: .. code-block:: bash + docker pull paddlepaddle/paddle:latest-gpu docker pull docker.paddlepaddle.org/paddle:latest-gpu -下载指定版本的Docker镜像,可以从 - `DockerHub网站 `_ - 获取可选的tag,并执行下面的命令: +选择下载使用不同的BLAS库的Docker镜像: + + .. code-block:: bash + + # 默认是使用MKL的镜像 + docker pull paddlepaddle/paddle + # 使用OpenBLAS的镜像 + docker pull paddlepaddle/paddle:latest-openblas + +下载指定版本的Docker镜像,可以从 `DockerHub网站 `_ 获取可选的tag,并执行下面的命令: .. code-block:: bash + docker pull paddlepaddle/paddle:[tag] # 比如: docker pull docker.paddlepaddle.org/paddle:0.10.0-gpu - .. _docker_run: 在Docker中执行PaddlePaddle训练程序 ------------------------------ -假设您已经在当前目录编写了一个PaddlePaddle的程序 :code:`train.py`(可以参考 +假设您已经在当前目录(比如在/home/work)编写了一个PaddlePaddle的程序 :code:`train.py`(可以参考 `PaddlePaddleBook `_ 编写),就可以使用下面的命令开始执行训练: .. code-block:: bash + + cd /home/work docker run -it -v $PWD:/work paddlepaddle/paddle /work/train.py 上述命令中, :code:`-it` 参数说明容器已交互式运行; :code:`-v $PWD:/work` @@ -74,22 +84,22 @@ 使用Docker启动PaddlePaddle Book教程 ------------------------------ -使用Docker可以快速在本地启动一个包含了PaddlePaddle官方Book教程的Jupiter Notebook,可以通过网页浏览。 +使用Docker可以快速在本地启动一个包含了PaddlePaddle官方Book教程的Jupyter Notebook,可以通过网页浏览。 PaddlePaddle Book是为用户和开发者制作的一个交互式的Jupyter Notebook。 如果您想要更深入了解deep learning,PaddlePaddle Book一定是您最好的选择。 大家可以通过它阅读教程,或者制作和分享带有代码、公式、图表、文字的交互式文档。 我们提供可以直接运行PaddlePaddle Book的Docker镜像,直接运行: -.. code-block:: bash + .. code-block:: bash - docker run -p 8888:8888 paddlepaddle/book + docker run -p 8888:8888 paddlepaddle/book 然后在浏览器中输入以下网址: -.. code-block:: text + .. code-block:: text - http://localhost:8888/ + http://localhost:8888/ 就这么简单,享受您的旅程! @@ -102,19 +112,19 @@ PaddlePaddle Book是为用户和开发者制作的一个交互式的Jupyter Note `nvidia-docker `_ 来运行镜像。 请不要忘记提前在物理机上安装GPU最新驱动。 -.. code-block:: bash + .. code-block:: bash - nvidia-docker run -it -v $PWD:/work paddledev/paddle:latest-gpu /bin/bash + nvidia-docker run -it -v $PWD:/work paddledev/paddle:latest-gpu /bin/bash **注: 如果没有安装nvidia-docker,可以尝试以下的方法,将CUDA库和Linux设备挂载到Docker容器内:** -.. code-block:: bash + .. code-block:: bash - 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 {}:{}') - docker run ${CUDA_SO} ${DEVICES} -it paddledev/paddle:latest-gpu + 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 {}:{}') + docker run ${CUDA_SO} ${DEVICES} -it paddledev/paddle:latest-gpu -关于AVX: +**关于AVX:** AVX是一种CPU指令集,可以加速PaddlePaddle的计算。最新的PaddlePaddle Docker镜像默认 是开启AVX编译的,所以,如果您的电脑不支持AVX,需要单独 diff --git a/doc/getstarted/build_and_install/docker_install_en.rst b/doc/getstarted/build_and_install/docker_install_en.rst index 4ee55380f09f7..8cdb0031bd1d1 100644 --- a/doc/getstarted/build_and_install/docker_install_en.rst +++ b/doc/getstarted/build_and_install/docker_install_en.rst @@ -31,14 +31,26 @@ For users in China, we provide a faster mirror: Download GPU version images: .. code-block:: bash + docker pull paddlepaddle/paddle:latest-gpu docker pull docker.paddlepaddle.org/paddle:latest-gpu +Choose between different BLAS version: + + .. code-block:: bash + + # image using MKL by default + docker pull paddlepaddle/paddle + # image using OpenBLAS + docker pull paddlepaddle/paddle:latest-openblas + + If you want to use legacy versions, choose a tag from `DockerHub `_ and run: .. code-block:: bash + docker pull paddlepaddle/paddle:[tag] # i.e. docker pull docker.paddlepaddle.org/paddle:0.10.0-gpu @@ -49,11 +61,13 @@ Launch your training program in Docker ------------------------------ Assume that you have already written a PaddlePaddle program -named :code:`train.py` (refer to +named :code:`train.py` under directory :code:`/home/work` (refer to `PaddlePaddleBook `_ for more samples), then run the following command: .. code-block:: bash + + cd /home/work docker run -it -v $PWD:/work paddlepaddle/paddle /work/train.py In the above command, :code:`-it` means run the container interactively; @@ -77,22 +91,22 @@ interactively: PaddlePaddle Book ------------------ -You can create a container serving PaddlePaddle Book using Jupiter Notebook in +You can create a container serving PaddlePaddle Book using Jupyter Notebook in one minute using Docker. PaddlePaddle Book is an interactive Jupyter Notebook for users and developers.If you want to dig deeper into deep learning, PaddlePaddle Book definitely is your best choice. We provide a packaged book image, simply issue the command: -.. code-block:: bash + .. code-block:: bash - docker run -p 8888:8888 paddlepaddle/book + docker run -p 8888:8888 paddlepaddle/book Then, you would back and paste the address into the local browser: -.. code-block:: text + .. code-block:: text - http://localhost:8888/ + http://localhost:8888/ That's all. Enjoy your journey! @@ -106,19 +120,19 @@ We recommend using to run GPU training jobs. Please ensure you have latest GPU driver installed before move on. -.. code-block:: bash + .. code-block:: bash - nvidia-docker run -it -v $PWD:/work paddledev/paddle:latest-gpu /bin/bash + nvidia-docker run -it -v $PWD:/work paddledev/paddle:latest-gpu /bin/bash **NOTE: If you don't have nvidia-docker installed, try the following method to mount CUDA libs and devices into the container.** -.. code-block:: bash + .. code-block:: bash - 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 {}:{}') - docker run ${CUDA_SO} ${DEVICES} -it paddledev/paddle:latest-gpu + 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 {}:{}') + docker run ${CUDA_SO} ${DEVICES} -it paddledev/paddle:latest-gpu -About AVX: +**About AVX:** AVX is a kind of CPU instruction can accelerate PaddlePaddle's calculations. The latest PaddlePaddle Docker image turns AVX on by default, so, if your diff --git a/doc/getstarted/build_and_install/index_cn.rst b/doc/getstarted/build_and_install/index_cn.rst index e68d677412d48..88c5142ddee99 100644 --- a/doc/getstarted/build_and_install/index_cn.rst +++ b/doc/getstarted/build_and_install/index_cn.rst @@ -1,24 +1,6 @@ 安装与编译 ========== -.. _quick_install: - -快速安装 -++++++++ - -PaddlePaddle支持使用pip快速安装,目前支持CentOS 6以上, Ubuntu 14.04以及MacOS 10.12,并安装有Python2.7。 -执行下面的命令完成快速安装: - - .. code-block:: bash - - pip install paddlepaddle - -如果需要安装支持GPU的版本,需要执行: - - .. code-block:: bash - - pip install paddlepaddle-gpu - .. _install_steps: 安装流程 @@ -44,3 +26,8 @@ PaddlePaddle提供pip和Docker的安装方式: :maxdepth: 1 build_from_source_cn.rst + +常见问题解答 +++++++++++ + +`常见问题解答 `_ diff --git a/doc/getstarted/build_and_install/index_en.rst b/doc/getstarted/build_and_install/index_en.rst index bf8e01a35c01c..c8b60d03578ba 100644 --- a/doc/getstarted/build_and_install/index_en.rst +++ b/doc/getstarted/build_and_install/index_en.rst @@ -1,26 +1,6 @@ Install and Build ================= -.. _quick_install: - -Quick Install ----------------------- - -You can use pip to install PaddlePaddle using a single command, supports -CentOS 6 above, Ubuntu 14.04 above or MacOS 10.12, with Python 2.7 installed. -Simply run the following command to install: - - .. code-block:: bash - - pip install paddlepaddle - -If you need to install GPU version, run: - - .. code-block:: bash - - pip install paddlepaddle-gpu - - .. _install_steps: Install Steps @@ -46,3 +26,8 @@ Build from Source :maxdepth: 1 build_from_source_en.md + +FAQ +++++++++++ + +`FAQ `_ diff --git a/doc/getstarted/build_and_install/pip_install_cn.rst b/doc/getstarted/build_and_install/pip_install_cn.rst index e4bba7b21ab2e..88c3d89856e87 100644 --- a/doc/getstarted/build_and_install/pip_install_cn.rst +++ b/doc/getstarted/build_and_install/pip_install_cn.rst @@ -24,15 +24,18 @@ PaddlePaddle可以使用常用的Python包管理工具 pip install paddlepaddle-gpu -如果需要获取并安装最新的(开发分支)PaddlePaddle,可以从我们的CI系统中下载最新的whl安装包并安装,在下面的链接中,使用guest登陆,然后点击Artifact标签,可以找到最新的whl安装包: - -- `CPU版本 `_ - -- `GPU CUDA-7.5 CUDNN-5版本 `_ - -- `GPU CUDA-8.0 CUDNN-5版本 `_ - -- `GPU CUDA-8.0 CUDNN-7版本 `_ +如果需要获取并安装最新的(开发分支)PaddlePaddle,可以从我们的CI系统中下载最新的whl安装包和c-api开发包并安装, +您可以从下面的表格中找到需要的版本: + +.. csv-table:: 各个版本最新的whl包 + :header: "版本说明", "cp27-cp27mu", "cp27-cp27mu", "C-API" + :widths: 1, 3, 3, 3 + + "cpu_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" + "cpu_avx_openblas", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "-" + "cuda7.5_cudnn5_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" + "cuda8.0_cudnn5_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" + "cuda8.0_cudnn7_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" .. _pip_dependency: diff --git a/doc/getstarted/build_and_install/pip_install_en.rst b/doc/getstarted/build_and_install/pip_install_en.rst index b9fa6dd9edf2b..5d18defd52281 100644 --- a/doc/getstarted/build_and_install/pip_install_en.rst +++ b/doc/getstarted/build_and_install/pip_install_en.rst @@ -30,13 +30,15 @@ you can download the latest whl package from our CI system. Access the below links, log in as guest, then click at the "Artifact" tab, you'll find the download link of whl packages. -- `CPU Only Version `_ - -- `GPU CUDA-7.5 CUDNN-5 Version `_ - -- `GPU CUDA-8.0 CUDNN-5 Version `_ - -- `GPU CUDA-8.0 CUDNN-7 Version `_ +.. csv-table:: whl package of each version + :header: "version", "cp27-cp27mu", "cp27-cp27mu", "C-API" + :widths: 1, 3, 3, 3 + + "cpu_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" + "cpu_avx_openblas", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "-" + "cuda7.5_cudnn5_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" + "cuda8.0_cudnn5_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" + "cuda8.0_cudnn7_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" .. _pip_dependency: diff --git a/doc/getstarted/index_cn.rst b/doc/getstarted/index_cn.rst index aa418c657a4ba..660ad578afee4 100644 --- a/doc/getstarted/index_cn.rst +++ b/doc/getstarted/index_cn.rst @@ -1,10 +1,65 @@ 新手入门 ============ +.. _quick_install: + +快速安装 +++++++++ + +PaddlePaddle支持使用pip快速安装,目前支持CentOS 6以上, Ubuntu 14.04以及MacOS 10.12,并安装有Python2.7。 +执行下面的命令完成快速安装: + + .. code-block:: bash + + pip install paddlepaddle + +如果需要安装支持GPU的版本,需要执行: + + .. code-block:: bash + + pip install paddlepaddle-gpu + +更详细的安装和编译方法参考: + .. toctree:: :maxdepth: 1 build_and_install/index_cn.rst - concepts/use_concepts_cn.rst -- `深度学习入门课程 `_ +.. _quick_start: + +快速开始 +++++++++ + +下载 `房价模型文件 `_ + +创建一个 housing.py 并粘贴此Python代码 (请确保fit_a_line.tar 是在正确的路径上) + + .. code-block:: python + + 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()) + + with open('fit_a_line.tar', 'r') as f: + parameters = paddle.parameters.Parameters.from_tar(f) + + # Infer using provided test data. + probs = paddle.infer( + output_layer=y_predict, parameters=parameters, + 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) + +执行 :code:`python housing.py` 瞧! 它应该打印出预测住房数据的清单。 + +.. toctree:: + :maxdepth: 1 + + concepts/use_concepts_cn.rst diff --git a/doc/getstarted/index_en.rst b/doc/getstarted/index_en.rst index be3253e3d41b9..845506cea7da7 100644 --- a/doc/getstarted/index_en.rst +++ b/doc/getstarted/index_en.rst @@ -1,9 +1,66 @@ GET STARTED ============ +.. _quick_install: + +Quick Install +---------------------- + +You can use pip to install PaddlePaddle using a single command, supports +CentOS 6 above, Ubuntu 14.04 above or MacOS 10.12, with Python 2.7 installed. +Simply run the following command to install: + + .. code-block:: bash + + pip install paddlepaddle + +If you need to install GPU version, run: + + .. code-block:: bash + + pip install paddlepaddle-gpu + +For more details about installation and build: + .. toctree:: :maxdepth: 1 build_and_install/index_en.rst -- `Deep Learning 101 `_ + +.. _quick_start: + +Quick Start +++++++++ + +Download the `trained housing prices model `_ + +Now, create a new file called housing.py, and paste this Python +code (make sure to set the right path based on the location of fit_a_line.tar +on your computer): + + + .. code-block:: python + + 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()) + + with open('fit_a_line.tar', 'r') as f: + parameters = paddle.parameters.Parameters.from_tar(f) + + # Infer using provided test data. + probs = paddle.infer( + output_layer=y_predict, parameters=parameters, + 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) + +Run :code:`python housing.py` and voila! It should print out a list of predictions +for the test housing data. From 4c28d4092418b5d3fa1cb7d49ac9a57b3325c09d Mon Sep 17 00:00:00 2001 From: typhoonzero Date: Thu, 23 Nov 2017 10:02:30 +0800 Subject: [PATCH 3/7] fix link --- doc/getstarted/build_and_install/docker_install_cn.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/getstarted/build_and_install/docker_install_cn.rst b/doc/getstarted/build_and_install/docker_install_cn.rst index c03352562e2a2..1fb7025915f40 100644 --- a/doc/getstarted/build_and_install/docker_install_cn.rst +++ b/doc/getstarted/build_and_install/docker_install_cn.rst @@ -56,7 +56,7 @@ 在Docker中执行PaddlePaddle训练程序 ------------------------------ -假设您已经在当前目录(比如在/home/work)编写了一个PaddlePaddle的程序 :code:`train.py`(可以参考 +假设您已经在当前目录(比如在/home/work)编写了一个PaddlePaddle的程序 :code:`train.py` (可以参考 `PaddlePaddleBook `_ 编写),就可以使用下面的命令开始执行训练: From 669da506f255b66ec7e5d20383cef34a858aed7c Mon Sep 17 00:00:00 2001 From: typhoonzero Date: Mon, 27 Nov 2017 10:16:49 +0800 Subject: [PATCH 4/7] follow comments2 --- .../build_from_source_cn.rst | 4 ++-- .../build_from_source_en.rst | 5 ++--- doc/getstarted/build_and_install/cmake.png | Bin 183422 -> 0 bytes .../build_and_install/docker_install_cn.rst | 4 ++-- .../build_and_install/docker_install_en.rst | 4 ++-- .../build_and_install/pip_install_cn.rst | 4 ++++ .../build_and_install/pip_install_en.rst | 6 +++++- doc/getstarted/index_cn.rst | 14 +++++-------- doc/getstarted/index_en.rst | 19 +++++++----------- 9 files changed, 29 insertions(+), 31 deletions(-) delete mode 100644 doc/getstarted/build_and_install/cmake.png diff --git a/doc/getstarted/build_and_install/build_from_source_cn.rst b/doc/getstarted/build_and_install/build_from_source_cn.rst index 7e9fec9739943..b2c92699f5845 100644 --- a/doc/getstarted/build_and_install/build_from_source_cn.rst +++ b/doc/getstarted/build_and_install/build_from_source_cn.rst @@ -103,10 +103,10 @@ PaddlePaddle可以使用cuDNN v5.1之后的任何一个版本来编译运行, 编译选项的设置 ++++++++++++++ -PaddePaddle通过编译时指定路径来实现引用各种BLAS/CUDA/cuDNN库。cmake编译时,首先在系统路径(/usr/lib\:/usr/local/lib)中搜索这几个库,同时也会读取相关路径变量来进行搜索。 通过使用 ``-D`` 命令可以设置,例如 +PaddePaddle通过编译时指定路径来实现引用各种BLAS/CUDA/cuDNN库。cmake编译时,首先在系统路径( :code:`/usr/lib:/usr/local/lib` )中搜索这几个库,同时也会读取相关路径变量来进行搜索。 通过使用 ``-D`` 命令可以设置,例如 .. code-block:: bash cmake .. -DWITH_GPU=ON -DWITH_TESTING=OFF -DCUDNN_ROOT=/opt/cudnnv5 -注意:这几个编译选项的设置,只在第一次cmake的时候有效。如果之后想要重新设置,推荐清理整个编译目录(``rm -rf``)后,再指定。 +**注意:这几个编译选项的设置,只在第一次cmake的时候有效。如果之后想要重新设置,推荐清理整个编译目录(** :code:`rm -rf` )**后,再指定。** diff --git a/doc/getstarted/build_and_install/build_from_source_en.rst b/doc/getstarted/build_and_install/build_from_source_en.rst index 02d5ab3bb8125..4b998f5288bee 100644 --- a/doc/getstarted/build_and_install/build_from_source_en.rst +++ b/doc/getstarted/build_and_install/build_from_source_en.rst @@ -115,12 +115,11 @@ Pass Compile Options You can pass compile options to use intended BLAS/CUDA/Cudnn libraries. When running cmake command, it will search system paths like -:code:`/usr/lib\:/usr/local/lib` and then search paths that you +:code:`/usr/lib:/usr/local/lib` and then search paths that you passed to cmake, i.e. .. code-block:: bash cmake .. -DWITH_GPU=ON -DWITH_TESTING=OFF -DCUDNN_ROOT=/opt/cudnnv5 -**NOTE: These options only take effect when running cmake for the first time, you need to clean the cmake cache or clean the build directory if you want to change it.** - +**NOTE: These options only take effect when running cmake for the first time, you need to clean the cmake cache or clean the build directory (** :code:`rm -rf` **) if you want to change it.** diff --git a/doc/getstarted/build_and_install/cmake.png b/doc/getstarted/build_and_install/cmake.png deleted file mode 100644 index a58cd09ad99cf27cc1ca5785fe54d726b83a82f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183422 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�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%0A{=^!@#pnEXgi6xCeK)%>Dr|ErfTe%bn?l9;R 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 diff --git a/doc/getstarted/build_and_install/docker_install_cn.rst b/doc/getstarted/build_and_install/docker_install_cn.rst index 1fb7025915f40..07933b2e0bbca 100644 --- a/doc/getstarted/build_and_install/docker_install_cn.rst +++ b/doc/getstarted/build_and_install/docker_install_cn.rst @@ -57,7 +57,7 @@ ------------------------------ 假设您已经在当前目录(比如在/home/work)编写了一个PaddlePaddle的程序 :code:`train.py` (可以参考 -`PaddlePaddleBook `_ +`PaddlePaddleBook `_ 编写),就可以使用下面的命令开始执行训练: .. code-block:: bash @@ -77,7 +77,7 @@ cd /work python train.py -**注:PaddlePaddle Docker镜像为了减小体积,默认没有安装vim,您可以在容器中执行 :code:`apt-get install -y vim` 安装后,在容器中编辑代码。** +**注:PaddlePaddle Docker镜像为了减小体积,默认没有安装vim,您可以在容器中执行** :code:`apt-get install -y vim` **安装后,在容器中编辑代码。** .. _docker_run_book: diff --git a/doc/getstarted/build_and_install/docker_install_en.rst b/doc/getstarted/build_and_install/docker_install_en.rst index 8cdb0031bd1d1..9b977c9c72e36 100644 --- a/doc/getstarted/build_and_install/docker_install_en.rst +++ b/doc/getstarted/build_and_install/docker_install_en.rst @@ -62,7 +62,7 @@ Launch your training program in Docker Assume that you have already written a PaddlePaddle program named :code:`train.py` under directory :code:`/home/work` (refer to -`PaddlePaddleBook `_ +`PaddlePaddleBook `_ for more samples), then run the following command: .. code-block:: bash @@ -84,7 +84,7 @@ interactively: cd /work python train.py -**NOTE: We did not install vim in the default docker image to reduce the image size, you can run :code:`apt-get install -y vim` to install it if you need to edit python files.** +**NOTE: We did not install vim in the default docker image to reduce the image size, you can run** :code:`apt-get install -y vim` **to install it if you need to edit python files.** .. _docker_run_book: diff --git a/doc/getstarted/build_and_install/pip_install_cn.rst b/doc/getstarted/build_and_install/pip_install_cn.rst index 88c3d89856e87..04c817956c220 100644 --- a/doc/getstarted/build_and_install/pip_install_cn.rst +++ b/doc/getstarted/build_and_install/pip_install_cn.rst @@ -27,6 +27,10 @@ PaddlePaddle可以使用常用的Python包管理工具 如果需要获取并安装最新的(开发分支)PaddlePaddle,可以从我们的CI系统中下载最新的whl安装包和c-api开发包并安装, 您可以从下面的表格中找到需要的版本: +如果在点击下面链接时出现如下登陆界面,点击“Log in as guest”即可开始下载: + +.. image:: paddleci.png + .. csv-table:: 各个版本最新的whl包 :header: "版本说明", "cp27-cp27mu", "cp27-cp27mu", "C-API" :widths: 1, 3, 3, 3 diff --git a/doc/getstarted/build_and_install/pip_install_en.rst b/doc/getstarted/build_and_install/pip_install_en.rst index 5d18defd52281..87057f7f9b19b 100644 --- a/doc/getstarted/build_and_install/pip_install_en.rst +++ b/doc/getstarted/build_and_install/pip_install_en.rst @@ -30,6 +30,10 @@ you can download the latest whl package from our CI system. Access the below links, log in as guest, then click at the "Artifact" tab, you'll find the download link of whl packages. +If the links below shows up the login form, just click "Log in as guest" to start the download: + +.. image:: paddleci.png + .. csv-table:: whl package of each version :header: "version", "cp27-cp27mu", "cp27-cp27mu", "C-API" :widths: 1, 3, 3, 3 @@ -46,7 +50,7 @@ Runtime Dependency ------------------------------ PaddlePaddle installation packages (whl) does not only contain .py files, -but also binaries built from C++ code, we ensure that PaddlePaddle can +but also binaries built from C++ code. We ensure that PaddlePaddle can run on current mainline Linux distributions, like CentOS 6, Ubuntu 14.04 and MacOS 10.12. diff --git a/doc/getstarted/index_cn.rst b/doc/getstarted/index_cn.rst index 660ad578afee4..a9087be6f350c 100644 --- a/doc/getstarted/index_cn.rst +++ b/doc/getstarted/index_cn.rst @@ -31,9 +31,7 @@ PaddlePaddle支持使用pip快速安装,目前支持CentOS 6以上, Ubuntu 14. 快速开始 ++++++++ -下载 `房价模型文件 `_ - -创建一个 housing.py 并粘贴此Python代码 (请确保fit_a_line.tar 是在正确的路径上) +创建一个 housing.py 并粘贴此Python代码: .. code-block:: python @@ -46,16 +44,14 @@ PaddlePaddle支持使用pip快速安装,目前支持CentOS 6以上, Ubuntu 14. 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()) - with open('fit_a_line.tar', 'r') as f: - parameters = paddle.parameters.Parameters.from_tar(f) - # Infer using provided test data. probs = paddle.infer( - output_layer=y_predict, parameters=parameters, - input=[item for item in paddle.dataset.uci_housing.test()()]) + 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) + print 'Predicted price: ${:,.2f}'.format(probs[i][0] * 1000) 执行 :code:`python housing.py` 瞧! 它应该打印出预测住房数据的清单。 diff --git a/doc/getstarted/index_en.rst b/doc/getstarted/index_en.rst index 845506cea7da7..d14e3f5c0cc90 100644 --- a/doc/getstarted/index_en.rst +++ b/doc/getstarted/index_en.rst @@ -6,7 +6,7 @@ GET STARTED Quick Install ---------------------- -You can use pip to install PaddlePaddle using a single command, supports +You can use pip to install PaddlePaddle with a single command, supports CentOS 6 above, Ubuntu 14.04 above or MacOS 10.12, with Python 2.7 installed. Simply run the following command to install: @@ -33,11 +33,8 @@ For more details about installation and build: Quick Start ++++++++ -Download the `trained housing prices model `_ - -Now, create a new file called housing.py, and paste this Python -code (make sure to set the right path based on the location of fit_a_line.tar -on your computer): +Create a new file called housing.py, and paste this Python +code: .. code-block:: python @@ -51,16 +48,14 @@ on your computer): 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()) - with open('fit_a_line.tar', 'r') as f: - parameters = paddle.parameters.Parameters.from_tar(f) - # Infer using provided test data. probs = paddle.infer( - output_layer=y_predict, parameters=parameters, - input=[item for item in paddle.dataset.uci_housing.test()()]) + 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) + print 'Predicted price: ${:,.2f}'.format(probs[i][0] * 1000) Run :code:`python housing.py` and voila! It should print out a list of predictions for the test housing data. From 13ac9604433037b4b8e7e18bbc70168177114e9d Mon Sep 17 00:00:00 2001 From: typhoonzero Date: Mon, 27 Nov 2017 10:23:31 +0800 Subject: [PATCH 5/7] add picture --- doc/getstarted/build_and_install/paddleci.png | Bin 0 -> 75322 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/getstarted/build_and_install/paddleci.png diff --git a/doc/getstarted/build_and_install/paddleci.png b/doc/getstarted/build_and_install/paddleci.png new file mode 100644 index 0000000000000000000000000000000000000000..cead0b4ed919c25d1b7f175ea2916d426b4448b2 GIT binary patch literal 75322 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 Si$;fn{7H(+ij)cIe*ZsU08MTH literal 0 HcmV?d00001 From 5331f937c24953522a90ef0d32774e34f056b8bc Mon Sep 17 00:00:00 2001 From: typhoonzero Date: Mon, 27 Nov 2017 11:08:37 +0800 Subject: [PATCH 6/7] update formats --- doc/getstarted/build_and_install/build_from_source_cn.rst | 1 + doc/getstarted/build_and_install/build_from_source_en.rst | 2 ++ doc/getstarted/build_and_install/pip_install_cn.rst | 4 +++- doc/getstarted/build_and_install/pip_install_en.rst | 4 +++- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/doc/getstarted/build_and_install/build_from_source_cn.rst b/doc/getstarted/build_and_install/build_from_source_cn.rst index b2c92699f5845..55665ac8edfcf 100644 --- a/doc/getstarted/build_and_install/build_from_source_cn.rst +++ b/doc/getstarted/build_and_install/build_from_source_cn.rst @@ -96,6 +96,7 @@ CUDA/cuDNN +++++++++++ PaddlePaddle在编译时/运行时会自动找到系统中安装的CUDA和cuDNN库进行编译和执行。 +使用参数 :code:`-DCUDA_ARCH_NAME=Auto` 可以指定开启自动检测SM架构,加速编译。 PaddlePaddle可以使用cuDNN v5.1之后的任何一个版本来编译运行,但尽量请保持编译和运行使用的cuDNN是同一个版本。 我们推荐使用最新版本的cuDNN。 diff --git a/doc/getstarted/build_and_install/build_from_source_en.rst b/doc/getstarted/build_and_install/build_from_source_en.rst index 4b998f5288bee..9a3ed7dd57137 100644 --- a/doc/getstarted/build_and_install/build_from_source_en.rst +++ b/doc/getstarted/build_and_install/build_from_source_en.rst @@ -105,6 +105,8 @@ CUDA/cuDNN +++++++++++ PaddlePaddle will automatically find CUDA and cuDNN when compiling and running. +parameter :code:`-DCUDA_ARCH_NAME=Auto` can be used to detect SM architecture +automatically in order to speed up the build. PaddlePaddle can build with any version later than cuDNN v5.1, and we intend to keep on with latest cuDNN versions. Be sure to run with the same version of cuDNN diff --git a/doc/getstarted/build_and_install/pip_install_cn.rst b/doc/getstarted/build_and_install/pip_install_cn.rst index 04c817956c220..41312da48c055 100644 --- a/doc/getstarted/build_and_install/pip_install_cn.rst +++ b/doc/getstarted/build_and_install/pip_install_cn.rst @@ -30,13 +30,15 @@ PaddlePaddle可以使用常用的Python包管理工具 如果在点击下面链接时出现如下登陆界面,点击“Log in as guest”即可开始下载: .. image:: paddleci.png + :scale: 50 % + :align: center .. csv-table:: 各个版本最新的whl包 :header: "版本说明", "cp27-cp27mu", "cp27-cp27mu", "C-API" :widths: 1, 3, 3, 3 "cpu_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" - "cpu_avx_openblas", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "-" + "cpu_avx_openblas", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "暂无" "cuda7.5_cudnn5_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" "cuda8.0_cudnn5_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" "cuda8.0_cudnn7_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" diff --git a/doc/getstarted/build_and_install/pip_install_en.rst b/doc/getstarted/build_and_install/pip_install_en.rst index 87057f7f9b19b..4f295e14baa14 100644 --- a/doc/getstarted/build_and_install/pip_install_en.rst +++ b/doc/getstarted/build_and_install/pip_install_en.rst @@ -33,13 +33,15 @@ tab, you'll find the download link of whl packages. If the links below shows up the login form, just click "Log in as guest" to start the download: .. image:: paddleci.png + :scale: 50 % + :align: center .. csv-table:: whl package of each version :header: "version", "cp27-cp27mu", "cp27-cp27mu", "C-API" :widths: 1, 3, 3, 3 "cpu_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" - "cpu_avx_openblas", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "-" + "cpu_avx_openblas", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "Not Available" "cuda7.5_cudnn5_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" "cuda8.0_cudnn5_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" "cuda8.0_cudnn7_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" From bd6c9052e22823a87bfbe21ffa63e7d55ff38d4d Mon Sep 17 00:00:00 2001 From: typhoonzero Date: Mon, 27 Nov 2017 12:51:14 +0800 Subject: [PATCH 7/7] update picture --- doc/getstarted/build_and_install/paddleci.png | Bin 75322 -> 40242 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/getstarted/build_and_install/paddleci.png b/doc/getstarted/build_and_install/paddleci.png index cead0b4ed919c25d1b7f175ea2916d426b4448b2..16087ce059aa3c07ce8c927d983eb86351915825 100644 GIT binary patch literal 40242 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 TDaF2yYT()L>EluB9!dQV$m`bb literal 75322 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 Si$;fn{7H(+ij)cIe*ZsU08MTH