TensorFlow 技術框架解析 | 圖文理解深度學習技術實現

最近項目需要,客戶想上tensorflow,想把項目做的高大上一點,向我諮詢tensorflow的相關問題和部署方案,我要假裝自己很懂TF,之前一直在跟進tensorflow的技術進展,最近又做了很多功課,整理出以下內容,用這個ppt給客戶講解並加上TF的demo和tensorboard的可視化演示,客戶十分滿意,說這就是他們想看到的。


相關文章

深度學習框架TensorFlow入門,帶你瞭解tensorflow實現


tensorflow

先來認識一下TF的價值:

  • TensorFlow,是Google在15年年底發佈的機器學習平臺,發佈以後由於其速度快,擴展性好,推廣速度也很快。
  • Google的大戰略:Android佔領了移動端;TF佔領神經網絡提供AI服務。未來的趨勢恰好是語音圖像以及AI的時代。
  • TF的特點之一就是可以支持很多種設備,大到GPU、CPU,小到手機平板,五花八門的設備都可以跑起來TF。不得不說這一點很有前瞻性,可以預見的是,mobile-end的用戶將會享受到越來越多的AI服務。

系統概述

tensorflow技術架構

整個系統從底層到上層可分爲七層:

  • 最底層是硬件計算資源,支持CPU、GPU;
  • 支持兩種通信協議;
  • 數值計算層提供最基礎的計算,有線性計算、卷積計算;
  • 數據的計算都是以數組的形式參與計算;
  • 計算圖層用來設計神經網絡的結構;
  • 工作流層提供輕量級的框架調用
  • 最後構造的深度學習網絡可以通過TensorBoard服務端可視化

技術架構

tensorflow 系統概述

整體技術棧分爲兩部分:

  • 前端系統:提供編程模型,負責構造計算圖;
  • 後端系統:提供運行時環境,負責執行計算圖。

組件交互

tensorflow組件交互

master節點給兩種類型的節點分發任務:

  • /job:ps/task:0: 負責模型參數的存儲和更新
  • /job:worker/task:0: 負責模型的訓練或推理

會話(Session)

tensorflow 會話

  • 客戶端使用會話來和TF系統交互,一般的模式是,建立會話,此時會生成一張空圖;在會話中添加節點和邊,形成一張圖,然後執行。

實現(Implementation)

tensorflow 分佈式

  • TF中最重要的Tensor被支持的非常全面,8bit到64bit, signed和unsigned,IEEE float/double,complex number等等。使用引用計數來保存tensor,當計數到0時,tensor被回收。
  • 客戶端,用戶會使用;與master和一些worker process交流
  • master,用來與客戶端交互,同時調度任務;
  • worker process,工作節點,每個worker process可以訪問一到多個device。
  • device,TF的計算核心,通過將device的類型、job名稱、在worker process中的索引將device命名。可以通過註冊機制來添加新的device實現,每個device實現需要負責內存分配和管理調度TF系統所下達的核運算需求。

跨設備通信

tensorflow 跨設備通信

  • 當兩個需要通信的op在不同的機器上時,就需要跨設備通信,當它們需要通信時,TF會在它們之間的聯繫中添加Send和Recv節點,通過Send和Recv之間進行通信來達到op之間通信的效果。如上所示。

梯度計算( Gradient Computation )

tensorflow 梯度計算

  • 連接式的機器學習算法往往需要使用梯度下降法來求取參數,TF通過擴展圖的方式實現了自動求導,TF做法如下:
    對於每張計算圖,得到從輸入I到輸出C的路徑,並從C到I回溯,回溯過程中對於路徑上的每個節點A,添加另一個節點來計算A’來計算偏導,在計算偏導的過程中,A’不僅僅將上一層傳下來的反向導數作爲輸入,還可能將A的輸入和輸出也作爲其輸入。

數據並行計算( Data Parallel Training)

tensorflow 數據並行計算

  • 通過數據並行的方式來提升模型的效率,比如,假如每次模型的mini-batch是1000個樣本,那麼,切成10份,每份100個,然後將模型複製10份,每份都將梯度傳到參數服務器上。
    數據切分也分爲同步和異步兩種方式,同步的切分是等待每個獨立的model傳上來的梯度都到齊後再進行更新,這樣和一個大的batch沒有區別。異步的切分則是不用等待,每個獨立的模型的參數更新直接更新。

模型並行訓練( Model Parallel Training)

tensorflow 模型並行訓練

  • 還可以對模型進行切分,讓模型的不同部分執行在不同的設備上,這樣可以一個迭代的樣本可以在不同的設備上同時執行。如上圖所示的LSTM模型
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章