日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

KubeFlow安装指南

發布時間:2025/3/11 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 KubeFlow安装指南 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【摘要】 Kubeflow是Google推出的基于kubernetes環境下的機器學習組件,通過Kubeflow可以實現對TFJob等資源類型定義,可以像部署應用一樣完成在TFJob分布式訓練模型的過程。

?

?

組件

http://pachyderm.io/?

http://www.argoproj.io/

Kubeflow使用場景

  • 希望訓練tensorflow模型且可以使用模型接口發布應用服務在k8s環境中(eg.local,prem,cloud)

  • 希望使用Jupyter notebooks來調試代碼,多用戶的notebook server

  • 在訓練的Job中,需要對的CPU或者GPU資源進行調度編排

  • 希望Tensorflow和其他組件進行組合來發布服務

依賴庫

  • ksonnet 0.11.0以上版本 /可以直接從github上下載,scp ks文件到usr/local/bin

  • kubernetes 1.8以上(直接使用CCE服務節點,需要創建一個CCE集群和若干節點,并為某個節點綁定EIP)

  • kubectl tools

?1、安裝ksonnet

?ksonnet 安裝過程,可以去網址里面查看ks最新版本

wget https://github.com/ksonnet/ksonnet/releases/download/v0.13.0/ks_0.13.0_linux_amd64.tar.gz tar -vxf ks_0.13.0_linux_amd64.tar.gz cd -vxf ks_0.13.0_linux_amd64 sudo cp ks /usr/local/bin

安裝完成后

2、安裝kubectl工具

wget https://cce-storage.obs.cn-north-1.myhwclouds.com/kubectl.zip yum install unzip unzip kubectl.zip cp kubectl /usr/local/bin/ #在集群頁面查看kubectl工具 #下載并復制下圖中的config文件內容 mkdir /root/.kube/ touch /root/.kube/config vi /root/.kube/config #黏貼內容 :wq!保存 #因為這邊節點已經綁定了EIP,直接選擇集群內訪問即可 kubectl config use-context internal

安裝成功后執行kubectl version查看版本信息是否符合要求

3、安裝kubeflow

配置參數介紹

  • KUBEFLOW_SRC:下載文件存放的目錄

  • KUBEFLOW_TAG:代碼分支的tag,如Master(當前還有一個v0.2分支)

  • KFAPP:用來保存deployment、tfjob等應用的目錄,ksonnet app會保存在${KFAPP}/ks_app目錄下面

  • KUBEFLOW_REPO: kubeflow倉庫路徑,可以自己load下來,放到指定位置。具體做法:curl -L -o /root/kubeflow/kubeflow.tar.gz https://github.com/kubeflow/kubeflow/archive/master.tar.gz;tar -xzvf kubeflow.tar.gz;KUBEFLOW_REPO=/root/kubeflow/kubeflow-master/

安裝過程

mkdir ${KUBEFLOW_SRC} cd ${KUBEFLOW_SRC} export KUBEFLOW_TAG=<version> curl https://raw.githubusercontent.com/kubeflow/kubeflow/${KUBEFLOW_TAG}/scripts/download.sh | bash #如果要自行安裝可以看下download.sh 這個腳本${KUBEFLOW_REPO}/scripts/kfctl.sh init ${KFAPP} --platform none #初始化,會生成一個KFAPP目錄 cd ${KFAPP} ${KUBEFLOW_REPO}/scripts/kfctl.sh generate k8s #生成需要的component ${KUBEFLOW_REPO}/scripts/kfctl.sh apply k8s #生成對應的資源

4、查看當前啟動的工作負載

  • Argo?基于K8s的工作流引擎? https://argoproj.github.io/

  • Ambassador? API Gateway??https://www.getambassador.io/

  • tf-operator? ?https://github.com/kubeflow/tf-operator/blob/master/developer_guide.md

對外暴露了的workflow和jupyter notebook,提供可視化的交互

5、下載kubeflow官方的example:基于TensorFlow的分布式CNN模型訓練

執行腳本

CNN_JOB_NAME=mycnnjob VERSION=v0.2-branch KS_APP=cnnjob KF_ENV=default ks init ${KS_APP} cd ${KS_APP} ks registry add kubeflow-git github.com/kubeflow/kubeflow/tree/${VERSION}/kubeflow ks pkg install kubeflow-git/examples ks generate tf-job-simple ${CNN_JOB_NAME} --name=${CNN_JOB_NAME} ks apply ${KF_ENV} -c ${CNN_JOB_NAME}
#

查看定義TFjob資源

啟動了一個ps(相當于參數服務器)和worker(相當于計算服務器)

tfjob的yaml定義

apiVersion: kubeflow.org/v1alpha2 kind: TFJob metadata:annotations:ksonnet.io/managed: '{"pristine":"H4sIAAAAAAAA/+yRTWvcTAzH78/H0Nle7zpPaGPwqSWUHtqlCc2hBCOPZe/U84ZGs8Fd9ruXcUi3L5+g0DkM0l8aifn/ToBBfyaO2jtoYE49jcY/bTxP1XGHJhywhgJm7QZo4P72ve+hAEuCAwpCcwKDPZmYozl650g22lfK2+AdOYEG7KKc++p7OBfg0NLP0rMSA6osDzRiMpIbYyCVZ8r4iYLRCu8CqXXLfr2FbDAolOOXXuWdoHbEEZovJ0CecgBhkYN3UICMnXKu68mpg0We4yYsUEBZ9ijq0EX9jdqrelWsH8i0TNGRXG9X6YissTfUpTCgUBuQ0ZIQd5H4SLw2jSbFQxdl8Ela4USr6pLtppBiu1tT4xWa7vJ+oKNW1KqQ1vLvKQp2o2eL0n549/AGHgvQFqds2KQ4u/1CrZKxvPyuVCE1x3q7e7Wrt3XZD9hf39yUg2ZZyvr1/zhewQ8iQi56zkOggCfPs3bTW83QQOWD/Dq4iop1kFj9YSicHwtgioIse2+0WqCBj+4WtUlMcD4XF6D3S8iL93cZ94PnmThD5OdqhGZX/KP8d1LO57/vAAAA//8BAAD//zMKTHZaBAAA"}'clusterName: ""creationTimestamp: 2018-09-26T15:33:07Zgeneration: 0labels:app.kubernetes.io/deploy-manager: ksonnetksonnet.io/component: mycnnjobname: mycnnjobnamespace: defaultresourceVersion: "2293964"selfLink: /apis/kubeflow.org/v1alpha2/namespaces/default/tfjobs/mycnnjobuid: 777da1bb-c1a1-11e8-8661-fa163e4006b8 spec:cleanPodPolicy: RunningtfReplicaSpecs:PS:replicas: 1restartPolicy: Nevertemplate:metadata:creationTimestamp: nullspec:containers:- args:- python- tf_cnn_benchmarks.py- --batch_size=32- --model=resnet50- --variable_update=parameter_server- --flush_stdout=true- --num_gpus=1- --local_parameter_device=cpu- --device=cpu- --data_format=NHWCimage: gcr.io/kubeflow/tf-benchmarks-cpu:v20171202-bdab599-dirty-284af3name: tensorflowports:- containerPort: 2222name: tfjob-portresources: {}workingDir: /opt/tf-benchmarks/scripts/tf_cnn_benchmarksrestartPolicy: OnFailureWorker:replicas: 1restartPolicy: Nevertemplate:metadata:creationTimestamp: nullspec:containers:- args:- python- tf_cnn_benchmarks.py- --batch_size=32- --model=resnet50- --variable_update=parameter_server- --flush_stdout=true- --num_gpus=1- --local_parameter_device=cpu- --device=cpu- --data_format=NHWCimage: gcr.io/kubeflow/tf-benchmarks-cpu:v20171202-bdab599-dirty-284af3name: tensorflowports:- containerPort: 2222name: tfjob-portresources: {}workingDir: /opt/tf-benchmarks/scripts/tf_cnn_benchmarksrestartPolicy: OnFailure status:completionTime: 2018-09-26T15:33:58Zconditions:- lastTransitionTime: 2018-09-26T15:33:07ZlastUpdateTime: 2018-09-26T15:33:07Zmessage: TFJob mycnnjob is created.reason: TFJobCreatedstatus: "True"type: Created- lastTransitionTime: 2018-09-26T15:33:07ZlastUpdateTime: 2018-09-26T15:33:10Zmessage: TFJob mycnnjob is running.reason: TFJobRunningstatus: "False"type: Running- lastTransitionTime: 2018-09-26T15:33:07ZlastUpdateTime: 2018-09-26T15:33:58Zmessage: TFJob mycnnjob is failed.reason: TFJobFailedstatus: "True"type: FailedstartTime: 2018-09-26T15:33:10ZtfReplicaStatuses:Chief: {}Master: {}PS: {}Worker: {}

6、分布式TensorFlow編程

  • 具體參考https://www.tensorflow.org/deploy/distributed

  • 樣例:使用worker和parameter servers進行矩陣點乘運算?https://github.com/tensorflow/k8s/tree/master/examples/tf_sample

    ?

    ?

    ?

1 2 3 4 5 6 7 8 for job_name in cluster_spec.keys():for i in range(len(cluster_spec[job_name])):d = "/job:{0}/task:{1}".format(job_name, i)with tf.device(d):a = tf.constant(range(width * height), shape=[height, width])b = tf.constant(range(width * height), shape=[height, width])c = tf.multiply(a, b)results.append(c)
  • tf.train.ClusterSpec為這個集群內部的master調度運算的信息。

    ?

(1、ps類型的job定義需要計算的參數值,worker對參數值進行計算,2、參數的更新以及傳輸,ps向worker發送更新后的參數,worker返回給ps計算好的梯度值)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 with tf.device("/job:ps/task:0"):weights_1 = tf.Variable(...)biases_1 = tf.Variable(...)with tf.device("/job:ps/task:1"):weights_2 = tf.Variable(...)biases_2 = tf.Variable(...)with tf.device("/job:worker/task:7"):input, labels = ...layer_1 = tf.nn.relu(tf.matmul(input, weights_1) + biases_1)logits = tf.nn.relu(tf.matmul(layer_1, weights_2) + biases_2)# ...train_op = ...with tf.Session("grpc://worker7.example.com:2222") as sess:for _ in range(10000):sess.run(train_op)

總結

以上是生活随笔為你收集整理的KubeFlow安装指南的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色伊人| 免费看黄色漫画 | 天堂网在线视频 | 黄色的毛片 | 午夜电影一区 | 亚洲免费网站在线观看 | 精品人妻伦一二三区久久 | 啪视频在线 | 成在人线av | 精品久久免费视频 | 精国产品一区二区三区a片 国产精品第一 | 亚洲精品一区三区三区在线观看 | 欧美一级不卡 | 精品aaa| 成人av动漫在线 | 日韩一级黄色大片 | 朴银狐电影中文在线看 | 亚洲国产精品麻豆 | 特级淫片aaaaaaa级附近的 | 美女交配| 黄色a站 | 亚洲第一精品在线 | 亚洲天堂手机在线 | 情五月| 久久久免费看 | 2019年中文字幕 | caoporn免费在线 | 国产第九页 | 50部乳奶水在线播放 | 国产呦系列| 日本久操 | 伊伊总综合网 | 啪啪网站免费观看 | 色女仆影院 | 色就色综合 | 欧美日韩一卡二卡三卡 | 色综合免费视频 | 国产精品高潮AV无码 | 精品国产视频在线 | 日本久久爱 | 欧美性爱精品一区 | 人人97| 成人精品一区二区三区视频 | 99精品福利 | 少妇一级淫片免费放2 | 97在线免费 | 天天爱综合网 | 国产你懂 | 456亚洲视频 | 精品国产一区二区三区久久久久久 | 在线观看中文字幕码 | 在线视频日韩 | 欧美大片www| 久久国产经典 | 国内视频一区二区 | 九九久久精品 | 亚洲图片欧美在线 | 精品国产乱码久久久久久鸭王1 | 午夜免费播放观看在线视频 | 日日躁夜夜躁狠狠久久av | 日韩成人av免费在线观看 | 色综合久久久久 | 久操久热 | 人人射人人爽 | 国产精品视频久久久久 | 涩视频在线观看 | 成人在线播放网站 | www.日本高清 | 亚洲天堂福利 | 亚洲天天影视 | 午夜免费播放观看在线视频 | 一本色道久久综合熟妇 | 日本午夜激情视频 | 国内精品视频在线播放 | 小萝莉末成年一区二区 | 天天舔天天操天天干 | 曰女同女同中文字幕 | gav久久| 你懂得在线 | 成人av专区 | 国产欧美精品一区 | 久久综合激情 | 在线一区av | 91精品观看 | 不卡影院| 91制服诱惑 | 亚洲欧美日本国产 | 中文字幕不卡 | 含羞草一区二区 | 久久精品国产99国产精品 | 日韩一区二区三区精 | 日本黄色录像片 | av资源库| 丁香花婷婷 | 麻豆一区产品精品蜜桃的特点 | 国产福利一区二区三区 | 人人妻人人澡人人爽人人dvd | 温柔少妇的高潮呻吟 | 美女黄色免费网站 |