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

NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

摘要: 利用Jupyter開發TensorFLow也是許多資料科學家的首選,但是如何能夠快速從零搭建一套這樣的環境,並且配置GPU的使用,同時支援最新的TensorFLow版本, 對於資料科學家來說既是複雜的,同時也是浪費精力的。

簡介

TensorFLow是深度學習和機器學習最流行的開源框架,它最初是由Google研究團隊開發的並致力於解決深度神經網路的機器學習研究,從2015年開源到現在得到了廣泛的應用。特別是Tensorboard這一利器,對於資料科學家有效的工作也是非常有效的利器。

Jupyter notebook是強大的資料分析工具,它能夠幫助快速開發並且實現機器學習程式碼的共享,是資料科學團隊用來做資料實驗和組內合作的利器,也是機器學習初學者入門這一個領域的好起點。

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

準備Kubernetes環境

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

體驗通過應用目錄部署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高效計算的能力同時,比較簡單和快速的開始模型開發工作。

原文連結

相關文章

人工智慧 最新文章