PyTorch支持Kubernetes集群

PyTorch 支持Kubernetes集群

Pytorchs是另外一个开源的深度学习软件包,Pytorch可以在Kubernetes之中运行。该POC基于 TFJob operator,目前还处于概念验证阶段。

参考:

pytorch-operator 项目支持pytorch。该代码库还是体验阶段,用于启动该 proposal 的支持。

环境要求

目前,PyTorch是通过Helm的支持安装的,这与Kubeflow采用的ksonnet是不一致的,不过以后helm和Ksonnet将会合并,从而最终架构将走向统一。

使用 PyTorch Operator

运行下面的指令,部署 operator 到当前上下文的命名空间(或通过--namespace=kubeflow指定):

RBAC=true #set false if you do not have an RBAC cluster
helm install pytorch-operator-chart -n pytorch-operator --set rbac.install=${RBAC} --wait --replace

对 POC 例程,我们使用包含分布式训练脚本的 configmap 来进行:

kubectl create -f examples/mnist/configmap.yaml

创建 PyTorchJob 资源来启动训练过程:

kubectl create -f examples/mnist/pytorchjob.yaml

现在,你应该已经可以看到任务(job)按照指定的复制数(replicas)运行起来。

kubectl get pods -a -l pytorch_job_name=example-job

训练任务将运行大约 10 epochs,耗时 5-10 分钟(CPU集群)。在运行时可以查看日志。通过下面的方法可以看到日志的输出,了解训练的运行状态:

PODNAME=$(kubectl  get pods -a -l pytorch_job_name=example-job,task_index=0 -o name)
kubectl logs -f ${PODNAME}

例程的输出:

Downloading http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz
Downloading http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz
Downloading http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz
Downloading http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz
Processing...
Done!
Rank  0 , epoch  0 :  1.2753884393269066
Rank  0 , epoch  1 :  0.5752273188915842
Rank  0 , epoch  2 :  0.4370715184919616
Rank  0 , epoch  3 :  0.37090928852558136
Rank  0 , epoch  4 :  0.3224359404430715
Rank  0 , epoch  5 :  0.29541213348158385
Rank  0 , epoch  6 :  0.27593734307583967
Rank  0 , epoch  7 :  0.25898529327055536
Rank  0 , epoch  8 :  0.24815570648862864
Rank  0 , epoch  9 :  0.22647559368756534

猜你喜欢

转载自my.oschina.net/u/2306127/blog/1817835