Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleDetection
提交
e2caa1f7
P
PaddleDetection
项目概览
PaddlePaddle
/
PaddleDetection
大约 1 年 前同步成功
通知
695
Star
11112
Fork
2696
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
184
列表
看板
标记
里程碑
合并请求
40
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleDetection
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
184
Issue
184
列表
看板
标记
里程碑
合并请求
40
合并请求
40
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
e2caa1f7
编写于
11月 03, 2016
作者:
C
chenguoyan01
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Added some explanation to paddle_on_kubernetes.md
上级
43510841
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
22 addition
and
7 deletion
+22
-7
doc_cn/build_and_install/paddle_on_kubernetes.md
doc_cn/build_and_install/paddle_on_kubernetes.md
+22
-7
未找到文件。
doc_cn/build_and_install/paddle_on_kubernetes.md
浏览文件 @
e2caa1f7
# Paddle On Kubernetes
# Paddle On Kubernetes
>在这篇文档里,我们介绍如何在 Kubernetes 集群上启动一个单机使用CPU的Paddle训练作业。在下一篇中,我们将介绍如何启动分布式训练作业。
## 制作Docker镜像
## 制作Docker镜像
本文使用QucikStart的例子来作为镜像,详细的Paddle镜像请参考
[
Docker installation guide
](
http://www.paddlepaddle.org/doc/build/docker_install.html
)
,使用paddledev/paddle:cpu-demo-latest作为基础镜像。
在一个功能齐全的Kubernetes机群里,通常我们会安装Ceph等分布式操作系统来存储训练数据。这样的话,一个分布式Paddle训练任务中的每个进程都可以从Ceph读取数据。在这个例子里,我们只演示一个单机作业,所以可以简化对环境的要求,把训练数据直接放在
Paddle的Docker Image里。为此,我们需要制作一个包含训练数据的Paddle镜像。
Paddle 的
[
Quick Start Tutorial
](
http://www.paddlepaddle.org/doc/demo/quick_start/index_en.html
)
里介绍了用Paddle源码中的脚本下载训练数据的过程。
而
`paddledev/paddle:cpu-demo-latest`
镜像里有 Paddle 源码与Demo,( 请注意,默认的
Paddle镜像
`paddledev/paddle:cpu-latest`
是不包括源码的, Paddle的各版本镜像可以参考
[
Docker installation guide
](
http://www.paddlepaddle.org/doc/build/docker_install.html
)
),所以我们使用这个镜像来下载训练数据到Docker Container中,然后把这个包含了训练数据的container保存为一个新的镜像。
### 运行容器
### 运行容器
```
```
$ docker run --name quick_start_data -it paddledev/paddle:cpu-demo-latest
$ docker run --name quick_start_data -it paddledev/paddle:cpu-demo-latest
```
```
### 下载数据
进入容器
`/root/paddle/demo/quick_start/data`
目录,使用
`get_data.sh`
下载数据
进入容器
`/root/paddle/demo/quick_start/data`
目录,使用
`get_data.sh`
下载数据
```
```
...
@@ -22,10 +33,12 @@ HTTP request sent, awaiting response... 200 OK
...
@@ -22,10 +33,12 @@ HTTP request sent, awaiting response... 200 OK
Length: 495854086 (473M) [application/x-gzip]
Length: 495854086 (473M) [application/x-gzip]
Saving to: 'reviews_Electronics_5.json.gz'
Saving to: 'reviews_Electronics_5.json.gz'
0% [
] 874,279 64.7KB/s eta 2h 13m
10% [=======>
] 874,279 64.7KB/s eta 2h 13m
```
```
### 修改启动脚本
下载完数据后,修改
`/root/paddle/demo/quick_start/train.sh`
文件,内容如下(增加了一条cd命令)
下载完数据后,修改
`/root/paddle/demo/quick_start/train.sh`
文件,内容如下(增加了一条cd命令)
```
```
set -e
set -e
...
@@ -58,9 +71,11 @@ $ docker commit quick_start_data mypaddle/paddle:quickstart
...
@@ -58,9 +71,11 @@ $ docker commit quick_start_data mypaddle/paddle:quickstart
## 使用 Kubernetes 进行训练
## 使用 Kubernetes 进行训练
>针对任务运行完成后容器自动退出的场景,Kubernetes有Job类型的资源来支持。下文就是用Job类型的资源来进行训练。
### 编写yaml文件
### 编写yaml文件
在训练时,输出结果可能会随着容器的消耗而被删除,需要在创建
Job时,挂载卷。使用前面构造的镜像,可以创建一个Kubernetes Job
,简单的yaml文件如下:
在训练时,输出结果可能会随着容器的消耗而被删除,需要在创建
容器前挂载卷以便我们保存训练结果。使用我们之前构造的镜像,可以创建一个
[
Kubernetes Job
](
http://kubernetes.io/docs/user-guide/jobs/#what-is-a-job
)
,简单的yaml文件如下:
```
```
apiVersion: batch/v1
apiVersion: batch/v1
...
@@ -90,7 +105,7 @@ spec:
...
@@ -90,7 +105,7 @@ spec:
### 创建Paddle Job
### 创建Paddle Job
使用上文创建的yaml文件创建
kubernetes j
ob,命令为:
使用上文创建的yaml文件创建
Kubernetes J
ob,命令为:
```
```
$ kubectl create -f paddle.yaml
$ kubectl create -f paddle.yaml
...
@@ -125,7 +140,7 @@ Events:
...
@@ -125,7 +140,7 @@ Events:
### 查看训练结果
### 查看训练结果
根据
job对应的p
od信息,可以查看此Pod运行的宿主机。
根据
Job对应的P
od信息,可以查看此Pod运行的宿主机。
```
```
kubectl describe pod quickstart-fa0wx
kubectl describe pod quickstart-fa0wx
...
@@ -167,7 +182,7 @@ Volumes:
...
@@ -167,7 +182,7 @@ Volumes:
Path: /home/work/paddle_output
Path: /home/work/paddle_output
```
```
登录宿主机,查看
结果。
我们还可以登录到宿主机上查看训练
结果。
```
```
[root@paddle-demo-let02 paddle_output]# ll
[root@paddle-demo-let02 paddle_output]# ll
...
@@ -187,4 +202,4 @@ drwxr-xr-x 2 root root 4096 Oct 31 11:21 pass-00011
...
@@ -187,4 +202,4 @@ drwxr-xr-x 2 root root 4096 Oct 31 11:21 pass-00011
drwxr-xr-x 2 root root 4096 Oct 31 11:21 pass-00012
drwxr-xr-x 2 root root 4096 Oct 31 11:21 pass-00012
drwxr-xr-x 2 root root 4096 Oct 31 11:21 pass-00013
drwxr-xr-x 2 root root 4096 Oct 31 11:21 pass-00013
drwxr-xr-x 2 root root 4096 Oct 31 11:21 pass-00014
drwxr-xr-x 2 root root 4096 Oct 31 11:21 pass-00014
```
```
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录