在阿里雲Kubernetes容器服務上打造TensorFlow實驗室

摘要: 利用Jupyter開發TensorFLow也是許多數據科學家的首選,可是如何可以快速從零搭建一套這樣的環境,而且配置GPU的使用,同時支持最新的TensorFLow版本, 對於數據科學家來講既是複雜的,同時也是浪費精力的。git

簡介json

TensorFLow是深度學習和機器學習最流行的開源框架,它最初是由Google研究團隊開發的並致力於解決深度神經網絡的機器學習研究,從2015年開源到如今獲得了普遍的應用。特別是Tensorboard這一利器,對於數據科學家有效的工做也是很是有效的利器。服務器

Jupyter notebook是強大的數據分析工具,它可以幫助快速開發而且實現機器學習代碼的共享,是數據科學團隊用來作數據實驗和組內合做的利器,也是機器學習初學者入門這一個領域的好起點。網絡

利用Jupyter開發TensorFLow也是許多數據科學家的首選,可是如何可以快速從零搭建一套這樣的環境,而且配置GPU的使用,同時支持最新的TensorFLow版本, 對於數據科學家來講既是複雜的,同時也是浪費精力的。在阿里雲的Kubernetes集羣上,您能夠經過簡單的按鈕提交建立一套完整的TensorFlow實驗環境,包括Jupyter Notebook開發模型,利用Tensorboard調整模型。app

圖片描述

準備Kubernetes環境框架

阿里雲容器服務Kubernetes 1.9.3目前已經上線,可是購買按量付費的GPU計算型服務器須要申請ECS工單開通。具體建立過程,能夠參考建立Kubernetes集羣。ssh

體驗經過應用目錄部署TensorFlow實驗室機器學習

經過Helm部署MPI的應用,本文以openmpi爲例,向您展現如何快速在容器服務上運行MPI應用。實際上若是須要換成其餘MPI實現只須要替換鏡像便可。工具

2.1 能夠經過應用目錄,點擊ack-tensorflow-dev學習

圖片描述

2.2 點擊參數, 就能夠經過修改參數配置點擊部署

圖片描述

這裏的密碼是tensorflow, 您也能夠改爲您本身設定的密碼

也能夠登陸到Kubernetes master運行如下命令

$ helm install --name tensorflow incubator/ack-tensorflow

2.3 運行結束後能夠登陸到控制檯,查看tensorflow應用啓動的狀態

圖片描述

登陸使用TensorFlow實驗環境
首先經過ssh登陸Kubernetes集羣,查看tensorflow應用列表

$ helm list
NAME          REVISION    UPDATED                     STATUS      CHART                       NAMESPACE
tensorflow    1           Thu Apr 12 07:54:59 2018    DEPLOYED    ack-tensorflow-dev-0.1.0    default
  1. 利用helm status檢查應用配置

    $ helm status tensorflow
    LAST DEPLOYED: Thu Apr 12 07:54:59 2018
    NAMESPACE: default
    STATUS: DEPLOYED

    RESOURCES:
    ==> v1/Service
    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    tensorflow-ack-tensorflow-dev LoadBalancer 172.19.2.39 10.0.0.1 6006:32483/TCP,80:32431/TCP 13m

    ==> v1beta2/Deployment
    NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
    tensorflow-ack-tensorflow-dev 1 1 1 1 13m

    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 tensorflow-ack-tensorflow-dev'

      export SERVICE_IP=$(kubectl get svc --namespace default tensorflow-ack-tensorflow-dev -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
      echo http://$SERVICE_IP:

這裏能夠看到外部SLB的ip是10.0.0.1, Jupyter Notebook的端口爲80, Tensorboard爲6006。

  1. 經過Jupyter訪問端點登陸,本示例中Jupyter的訪問地址是http://10.0.0.1, 輸入前面設定的密碼點擊登陸, 在本示例中咱們設定的是tensorflow

圖片描述

  1. 點擊Terminal按鈕

圖片描述

  1. 在Terminal內執行nvidia-smi, 能夠看到GPU的配置

圖片描述

  1. 經過git命令下載tensorflow樣例代碼,

    $ git clone https://code.aliyun.com/kuber...

圖片描述

  1. 回到主頁您就能看到Tensorflow-Examples已經下載到了您的工做目錄

圖片描述

  1. 進入到 http://10.0.0.1/notebooks/Ten... 運行程序

圖片描述

注意:若是您須要用Tensorboard觀測訓練效果請將日誌記錄到/output/training_logs下。

  1. 如下爲訓練結果輸出

圖片描述

  1. 這時您能夠登陸Tensorboard查看訓練效果, 本示例中Tensorboard的地址爲http://10.0.0.1:6006 。 這裏您能夠看到模型的定義和訓練的收斂趨勢。

圖片描述

圖片描述

總結

咱們能夠利用阿里雲Kubernetes容器服務,輕鬆的搭建在雲端搭建TensorFlow的環境,運行深度學習的實驗室,而且利用TensorBoard追蹤訓練效果。歡迎你們使用阿里雲上的GPU容器服務,在使用GPU高效計算的能力同時,比較簡單和快速的開始模型開發工做。

原文連接

相關文章
相關標籤/搜索