专栏首页PaddlePaddle【使用指南】用Docker安装运行paddlepaddle

【使用指南】用Docker安装运行paddlepaddle

编写|paddle

排版|wangp

使用Docker安装和运行PaddlePaddle可以无需考虑依赖环境即可运行。并且也可以在Windows的docker中运行。 您可以在 Docker官网获得基本的Docker安装和使用方法(官网网址:https://docs.docker.com/get-started/)

如果您在使用Windows,可以参考教程,完成在Windows上安装和使用Docker(教程网址:https://docs.docker.com/toolbox/toolbox_install_windows/)

在了解Docker的基本使用方法之后,即可开始下面的步骤:

1

获取PaddlePaddle的Docker镜像

执行下面的命令获取最新的PaddlePaddle Docker镜像,版本为cpu_avx_mkl:

docker pull paddlepaddle/paddle

对于国内用户,我们提供了加速访问的镜像源:

docker pull docker.paddlepaddlehub.com/paddle

下载GPU版本(cuda8.0_cudnn5_avx_mkl)的Docker镜像:

docker pull paddlepaddle/paddle:latest-gpu

docker pull docker.paddlepaddlehub.com

/paddle:latest-gpu

选择下载使用不同的BLAS库的Docker镜像:

# 默认是使用MKL的镜像

docker pull paddlepaddle/paddle

# 使用OpenBLAS的镜像

docker pull paddlepaddle/paddle:latest-openblas

下载指定版本的Docker镜像,可以从 DockerHub网站(https://hub.docker.com/r/paddlepaddle/paddle/tags/)获取可选的tag,并执行下面的命令:

docker pull paddlepaddle/paddle:[tag]

# 比如:

docker pull docker.paddlepaddlehub.com/paddle:0.11.0-gpu

2

在Docker中执行PaddlePaddle训练程序

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

cd /home/work

docker run -it -v $PWD:/work paddlepaddle/paddle /work/train.py

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

当然,您也可以进入到Docker容器中,以交互式的方式执行或调试您的代码

注:PaddlePaddle Docker镜像为了减小体积,默认没有安装vim,您可以在容器中执行 apt-get install -y vim 安装后,在容器中编辑代码

3

使用Docker启动PaddlePaddle Book教程

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

我们提供可以直接运行PaddlePaddle Book的Docker镜像,直接运行:

docker run -p 8888:8888 paddlepaddle/book

然后在浏览器中输入以下网址:

http://localhost:8888/

就这么简单,享受您的旅程!

4

使用Docker执行GPU训练

为了保证GPU驱动能够在镜像里面正常运行,我们推荐使用 nvidia-docker(网址:https://github.com/NVIDIA/nvidia-docker) 来运行镜像。 请不要忘记提前在物理机上安装GPU最新驱动

nvidia-docker run -it -v $PWD:/work paddlepaddle/paddle:latest-gpu /bin/bash

注: 如果没有安装nvidia-docker,可以尝试以下的方法,将CUDA库和Linux设备挂载到Docker容器内:

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 paddlepaddle/paddle:latest-gpu

关于AVX

AVX是一种CPU指令集,可以加速PaddlePaddle的计算。最新的PaddlePaddle Docker镜像默认 是开启AVX编译的,所以,如果您的电脑不支持AVX,需要单独 编译 PaddlePaddle为no-avx版本

以下指令能检查Linux电脑是否支持AVX:

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

如果输出是No,就需要选择使用no-AVX的镜像

本文分享自微信公众号 - PaddlePaddle(PaddleOpenSource),作者:paddle

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-01-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【使用指南】用Docker编译和测试PaddlePaddle

    编写|PaddlePaddle 排版|wangp 1 需要的软硬件 为了开发PaddlePaddle,我们需要: A: 一台电脑,可以装的是 Linux, ...

    用户1386409
  • 速成记|安装PaddlePaddle到底分几步?

    和哪个版本的PaddlePaddle可以牵手成功,首先对自己的“英雄”要足够了解,尤其是这三个硬性条件

    用户1386409
  • 如何贡献文档

    如何贡献文档 PaddlePaddle的文档包括英文文档 doc 和中文文档 doc_cn 两个部分。文档都是通过 cmake 驱动 sphinx 编译生成,生...

    用户1386409
  • Docker 之 Jenkins自动化部署

    Docker搭建微服务自动部署 <架构探险之路>,让我们来看看如何实现基于Docker的Jenkins自动化部署。

    架构探险之道
  • 用一个实际例子理解Docker volume工作原理

    要了解Docker Volume,首先我们需要理解Docker文件系统的工作原理。Docker镜像是由多个文件系统的只读层叠加而成。当一个容器通过命令docke...

    Jerry Wang
  • 详细齐全!Docker常用基本命令

    这个命令呢其实和在https://hub.docker.com/这里搜索是一样的效果

    用户7544680
  • 24条 Docker 建议

    在TES GLOBAL,我们已经爱上Docker并从Docker的0.8版本开始就在生产环境中使用它。我们的很多开发者都参加了在DockerCon欧洲上的培训...

    小小科
  • Docker 笔记 1:Docker 基础与搭建第一个 Docker 应用栈

    经典云计算架构包括 IaaS(Infrastructure as a Service,基础设施即服务)、PaaS(Platform as a Service,平...

    苏易北
  • Docker入门教程 Part 3 Services

    本篇笔记是官方Get Started入门教程的Part3 Services,主要演示如何使用 docker-compose.yml 来定义应用服务,docker...

    twowinter
  • Docker简介

    Docker提供了在宽松隔离环境(称之为容器)中打包和运行应用程序的能力,以及用来管理容器生命周期的工具和平台

    ayqy贾杰

扫码关注云+社区

领取腾讯云代金券