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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

TensorFlow 分布式

發布時間:2023/12/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TensorFlow 分布式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、簡介

使用單臺機器或者單個GPU/CPU來進行模型訓練,訓練速度會受資源的影響,因為畢竟單個的設備的計算能力和存儲能力具有一定的上限的,針對這個問題,TensorFlow支持分布式模型運算,支持多機器、多GPU、多CPU各種模型的組合運行方案的設計。(默認情況下,TensorFlow程序會將程序運行在第一個GPU上<如果有GPU,并且安裝的TensorFlow支持GPU運行>)

TensorFlow的分布式支持單機多GPU、單機GPU+CPU、多機GPU等結構,不過所有結構的構建方式基本類似。

除了TensorFlow外,Caffe、DeepLearning4j等也支持分布式訓練,TensorFlow中的集群(Cluster)指的是一系列能夠對TensorFlow中的圖(graph)進行分布式計算的任務(task)。每個任務是同服務(server)相關聯的。TensorFlow中的服務會包含一個用于創建session的主節點和至少一個用于圖運算的工作節點。另外在TensorFlow中,一個集群可以被拆分為一個或者多個作業(job),每個作業可以包含至少一個任務。

cluster(集群)、job(作業)、task(任務)三者可以簡單的看成是層次關系,task可以看成每臺機器上的一個進程,多個task組成job;job又有:ps、worker兩種,分別用于參數服務、計算服務,組成cluster。

二、構建步驟

TensorFlow分布式集群的構建主要通過代碼實現,主要步驟如下:

1、創建集群(Cluster)

  • 創建一個tf.train.ClusterSpec用于對集群中的所有任務進行描述,該描述內容對于所有內容應該是相同的。
  • 創建tf.train.Se中參數傳入構造函數,rver并將tf.train.ClusterSpec

2、使用tf.device API指定運算的設備,構建計算圖,最后提交運算

備注:TensorFlow負責內部作業之間的數據傳輸

三、實現方式

TensorFlow中主要包含兩個方面

第一:對不同數據大小進行計算的任務(work作業)

第二:用于不停更新共享參數的任務(ps作業)。這樣任務都可以運行不同在機器上,在TensorFlow中,主要實現方式如下:

  • 圖內的拷貝(In-Graph Replication)
  • 圖間的拷貝(Between-Graph Replication)
  • 異步訓練(Asynchronous Training)
  • 同步訓練(Synchronous Training)

3.1)在In-Graph Replication

指定整個集群由一個客戶端來構建圖,并且這個客戶端來提交圖到集群中,worker只負責處理執行任務。In-Graph模式的好處在于解耦了TensorFlow集群和訓練應用之間的關系,這樣可以提前構建好參數服務器和計算服務器,而這些角色本身不需要額外的邏輯代碼,只需要使用join等待即可,真正的訓練邏輯全部位于客戶端,具有足夠高的靈活性。

備注:在小規模數據集的情況下,經常使用。在海量數據的訓練過程中,不建議使用該方式,建議使用Between-Graph Replication模式。

3.2)在Between-Graph Replication

每個客戶端會構建一個相似的圖結構,該結構中的參數均通過ps作業進行聲明并使用tf.train.replica_device_setter方法將參數映射到不同的任務作業中。

3.3)Synchronous Training

在同步訓練中,每個graph的副本讀取相同的parameter值,并行的計算,然后將計算完的結果放到一起處理。在TensorFlow中,如果是Betweengraph replication的情況下,可以通tf.train.SyncReplicasOptimizer來處理,如果是In-graph replication情況下,直接對結果進行處理即可(比如平均).

3.4)Asynchronous Training

在異步訓練中,每個任務計算完后,就會直接使用計算出的結果更新parameter值。不同的任務之間不存在協調進度。

同步訓練需要等待最慢的一個任務執行完后,才可用更新參數;異步訓練中,可以每執行完一個任務,就更新一次參數。一般情況下,建議使用異步訓練。

四、Demo演示

server-demo.py服務器代碼:

import?tensorflow as tf # 1. 配置服務器相關信息 # 因為tensorflow底層代碼中,默認就是使用ps和work分別表示兩類不同的工作節點 # ps:變量/張量的初始化、存儲相關節點 # work: 變量/張量的計算/運算的相關節點 ps_hosts?=?['127.0.0.1:33331',?'127.0.0.1:33332'] work_hosts?=?['127.0.0.1:33333',?'127.0.0.1:33334',?'127.0.0.1:33335'] cluster?=?tf.train.ClusterSpec({'ps': ps_hosts,?'work': work_hosts})# 2. 定義一些運行參數(在運行該python文件的時候就可以指定這些參數了) tf.app.flags.DEFINE_string('job_name', default_value='work', docstring="One of 'ps' or 'work'") tf.app.flags.DEFINE_integer('task_index', default_value=0, docstring="Index of task within the job") FLAGS?=?tf.app.flags.FLAGS# 2. 啟動服務 def?main(_):print(FLAGS.job_name)server?=?tf.train.Server(cluster,job_name=FLAGS.job_name,task_index=FLAGS.task_index)server.join() if?__name__?==?'__main__':# 底層默認會調用main方法tf.app.run()

客戶端代碼:client-demo01

import?tensorflow as tf import?numpy as np # 1. 構建圖 with tf.device('/job:ps/task:0'):# 2. 構造數據x?=?tf.constant(np.random.rand(100).astype(np.float32))# 3. 使用另外一個機器 with tf.device('/job:work/task:1'):y?=?x?*?0.1?+?0.3# 4. 運行 with tf.Session(target='grpc://127.0.0.1:33335',config=tf.ConfigProto(log_device_placement=True,allow_soft_placement=True)) as sess:print(sess.run(y))

執行:

1、通過命令行,進入對應環境:進入server-demo.py所在文件夾,重復打開5個,分別輸入(雖然最后結果只是在最后3335中顯示,但是必須要全部運行,才能運算出結果):

  • python server-demo.py --job_name=ps --task_index=0
  • python server-demo.py --job_name=ps --task_index=1
  • python server-demo.py --job_name=work --task_index=0
  • python server-demo.py --job_name=work --task_index=1
  • python server-demo.py --job_name=work --task_index=2

2、運行客戶端,最后結果如下:

總結

以上是生活随笔為你收集整理的TensorFlow 分布式的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 成年人在线视频 | 日本在线| 国产制服91一区二区三区制服 | 中文免费在线观看 | 精品亚洲国产成人av制服丝袜 | 特级毛片在线观看 | 国产精品7 | 九九一级片 | 最新不卡av | 456亚洲视频 | 亚洲一区二区免费看 | 黄色片在哪看 | 国产精品精 | 日本老妇性生活 | 狠狠91| 香蕉视频在线网址 | 国产福利短视频 | 日韩精品一区二区三区高清免费 | 中国免费看的片 | 深夜激情视频 | 精品人妻一区二区三区四区五区 | 性欧美巨大乳 | 欧美少妇一区二区 | 久久久久久久久久久久97 | 男人免费视频 | 婷婷综合网站 | 伊人3 | 波多野结衣一区二区三区在线观看 | 后宫秀女调教(高h,np) | 黄色在线观看网址 | 欧美激精品 | 娇小tube性极品娇小 | 在线观看黄色网页 | 精品人妻一区二区免费视频 | 大学生三级中国dvd 日韩欧美一区二区区 | 免费黄色在线网站 | 捆绑japanhdxxxxvideos | 亚洲一区二区三区四区五区六区 | 手机在线精品视频 | 国产精品正在播放 | 日本a视频 | 成人三级在线播放 | 好吊色视频一区二区三区 | 影音先锋激情在线 | 大屁股一区二区三区 | 亚洲美女一区二区三区 | 91久久一区二区 | 亚洲高清色 | 一区二区三区视频 | 天天躁日日躁aaaxxⅹ | 黄色网免费 | av一区二区三区四区 | 亚洲天堂网视频 | 一起操17c | 男生尿隔着内裤呲出来视频 | 国产精品网站在线 | 色香蕉网| 亚洲av无码国产精品麻豆天美 | 欧美视频中文字幕 | 神马午夜51 | 肉色超薄丝袜脚交一区二区 | 亚洲熟女一区二区三区 | 日本久久高清视频 | 高清二区| 91精品在线观看视频 | 亚洲黄色在线视频 | hd性videos意大利精品 | jizz日本大全 | 亚洲久久影院 | www.国产精品 | 欧美精品videos | 欧美综合第一页 | 国产高清av在线 | 假日游船 | 麻豆影视免费观看 | 日本久久久久久久久久久 | 在线成年人视频 | 人人看人人艹 | 视频一区二区三区在线观看 | 午夜羞羞网站 | 噜噜噜在线视频 | 亚洲毛片在线播放 | www.色就是色| 成人动漫h在线观看 | 欧美一区二区视频在线 | 日av中文字幕 | 91超碰在线免费观看 | 91在线网址 | 99青青草| 青青超碰 | 性欧美一区二区 | 精品久久久久中文慕人妻 | 日批网址 | 久久久久网 | 精品国产一区二区三区四 | 国产麻豆精品久久一二三 | 亚洲国产精品视频在线观看 | 精品在线免费播放 | 国产视频一区二区不卡 |