TensorFlow模型开发
TensorFLow 是深度学习和机器学习最流行的开源框架,它最初是由 Google 研究团队开发的并致力于解决深度神经网络的机器学习研究,从2015年开源到现在得到了广泛的应用。特别是 Tensorboard 这一利器,对于数据科学家的工作非常有用。
Jupyter notebook 是强大的数据分析工具,它能够帮助快速开发并且实现机器学习代码的共享,是数据科学团队用来做数据实验和组内合作的利器,也是机器学习初学者入门这一个领域的好起点。
利用 Jupyter 开发 TensorFLow 是许多数据科学家的首选,但是如何能够快速从零搭建一套这样的环境,并且配置 GPU 的使用,同时支持最新的 TensorFLow 版本,对于数据科学家来说既复杂,同时也浪费精力。在阿里云的 Kubernetes 集群上,您可以通过简单的 Web 界面,一键式创建一套完整的 tensorFlow 实验环境,包括 Jupyter Notebook开发模型,利用 Tensorboard 调整模型。
准备Kubernetes环境
阿里云容器服务Kubernetes 1.9.3目前已经上线,但是购买按量付费的GPU计算型服务器需要申请ECS工单开通。创建包含适当数量弹性计算资源(GPU 服务器)的 Kubernetes 集群,可以参见创建 GN5 型Kubernetes 集群。
需要登录 Master节点,执行相关命令,参见SSH访问Kubernetes集群。
准备数据
- 创建NAS文件存储,并且设置vpc内挂载点。可以参考管理文件系统。并且查看挂载点,这里假设挂载点为
xxxxxx.cn-shanghai.nas.aliyuncs.com
- 准备名字为/data的数据文件夹。
mkdir /nfs mount -t nfs -o vers=4.0 xxxxxx.cn-hangzhou.nas.aliyuncs.com:/ /nfs mkdir -p /nfs/data umount /nfs
创建 persistent volume
以下为创建NAS的nas.yaml样例,实际上也可以创建云盘或者OSS等持久化存储
apiVersion: v1
kind: PersistentVolume
metadata:
labels:
train: mnist
name: pv-nas-train
spec:
persistentVolumeReclaimPolicy: Retain
accessModes:
- ReadWriteMany
capacity:
storage: 5Gi
flexVolume:
driver: alicloud/nas
options:
mode: "755"
path: /data
server: xxxxxx.cn-hangzhou.nas.aliyuncs.com
vers: "4.0"
model: mnist
,该标签对于 pvc 选择 pv 绑定非常重要。另外和NAS相关的具体配置可以参考使用阿里云 NAS。
运行kubectl命令创建。
kubectl create -f nas.yaml
persistentvolume "pv-nas" created
通过应用目录部署 TensorFlow 应用
- 登录 容器服务控制台。
- 在 Kubernetes 菜单下,单击左侧导航栏中的 ,进入应用目录列表。
- 单击 ack-tensorflow-dev,进入对应的 chart 页面。
- 单击参数,就可以通过 Web 界面配置参数,然后单击 部署,最后单击 Kubernetes 控制台。
说明 默认的配置下,是使用 CPU 进行计算。
本示例使用 GPU 节点进行 tensorflow 开发,具体的配置如下:
jupyter: image: pullPolicy: Always repository: registry.cn-hangzhou.aliyuncs.com/tensorflow-samples/jupyter tag: 1.5.0-devel-gpu password: tensorflow resources: limits: nvidia.com/gpu: 1 requests: nvidia.com/gpu: 1 service: type: LoadBalancer tensorboard: image: pullPolicy: Always repository: registry.cn-hangzhou.aliyuncs.com/tensorflow-samples/tensorboard tag: "1.1.0" persistence: enabled: true mountPath: /data pvc: matchLabels: train: mnist storage: 5Gi
您也可以登录到 Kubernetes master 节点,运行以下命令进行部署。
$ helm install --name ack-tensorflow-dev-default incubator/ack-tensorflow
- 进入 Kubernetes Dashboard 页面,查看 tensorflow 应用启动的状态。
至此,ack-tensorflow-dev 应用成功运行。
使用 TensorFlow 实验环境
- 首先通过 ssh 登录 Kubernetes 集群,查看 tensorflow 应用列表。
$ helm list NAME REVISION UPDATED STATUS CHART NAMESPACE ack-tensorflow-dev-default 1 Tue Apr 17 16:05:31 2018 DEPLOYED ack-tensorflow-dev-0.1.0 default
- 利用 helm status 命令检查应用配置。
$ helm status ack-tensorflow-dev-default LAST DEPLOYED: Tue Apr 17 16:05:31 2018 NAMESPACE: default STATUS: DEPLOYED RESOURCES: ==> v1/Service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ack-tensorflow-dev-default LoadBalancer 172.21.7.225 120.55.137.46 6006:32203/TCP,80:30795/TCP 7m ==> v1beta2/Deployment NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE ack-tensorflow-dev-default 1 1 1 1 7m NOTES: 1. Get the application URL by running these commands: NOTE: It may take a few minutes for the LoadBalancer IP to be available. You can watch the status of by running 'kubectl get svc -w ack-tensorflow-dev-default' export SERVICE_IP=$(kubectl get svc --namespace default ack-tensorflow-dev-default -o jsonpath='{.status.loadBalancer.ingress[0].ip}') echo http://$SERVICE_IP:
这里可以看到外部 SLB 的 IP 是 120.55.137.46, Jupyter Notebook 的端口为 80,Tensorboard 为 6006。
- 通过 Jupyter 访问端点登录,本示例中 Jupyter 的访问地址是 http://120.55.137.46,输入前面设定的密码,单击 Log in, 在本示例中我们设定的是 tensorflow。
- 单击
,进入 Terminal 页面。
- 在 bash 执行环境下,在 Terminal 内执行 nvidia-smi,可以看到 GPU 的配置。
- 通过 git 命令下载tensorflow样例代码。
$ git clone https://code.aliyun.com/kubernetes/Tensorflow-Examples.git Clone into "Tensorflow-Examples"... remote: Counting objects: 885, done. remote: Total 885 (delta 532), reused 885 (delta 532) Receiving objects: 100% (885/885), 17.89 MiB | 0 bytes/s, done. Resolving deltas: 100% (532/532), done. Checking connectivity... done. root@ack-tensorflow-dev-default-84c7
- 查看mount进来的/data路径。
ls /data
- 返回 Jupyter 主页您就能看到 Tensorflow-Examples 已经下载到您的工作目录。
- 进入 /Tensorflow-Examples/notebooks/4_Utils/tensorboard_basic.ipynb 目录,运行程序。
说明 如果您需要用Tensorboard观测训练效果,请将日志记录到/output/training_logs下。
- 以下为训练结果输出。
- 这时您可以登录 Tensorboard 查看训练效果, 本示例中Tensorboard的地址为 http://120.55.137.46:6006。这里您可以看到模型的定义和训练的收敛趋势。
发布者:佚, 佚名,转转请注明出处:https://www.cms2.cn/aliyun/csk/5014.html