TensorFlow 2.4正式支持多工作節點多GPU分散訓練機器學習模型

2020-12-27 科技社techpub

深度學習函數庫TensorFlow釋出最新版本2.4,該版本支持新的分散式訓練策略,Keras還更新了混合精度功能,加速模型訓練工作,此外,TensorFlow 2.4提供Python開發者,熟悉的數值運算函數庫NumPy支持,而用於監控和診斷的分析工具也有更新,以支持新加入的功能。

TensorFlow中分散式訓練模塊tf.distribute更新兩個重要策略,tf.distribute不同策略可讓開發者以不同的方法分散運算。更新的策略分別是多工作節點鏡像策略MultiWorkerMirroredStrategy API,進入穩定階段,而參數伺服器策略ParameterServerStrategy API和自定義訓練循環,則開始提供實驗性支持。官方提到,ParameterServerStrategy就像是MultiWorkerMirroredStrategy一樣,是一種多工作節點數據平行策略,只不過梯度更新是以非同步的方式。

一個參數伺服器訓練叢集,由多個工作節點與參數伺服器組成,參數伺服器會創建變量,供工作節點讀取和更新,而變量讀取和更新在所有工作節點中,皆獨立進行,沒有執行任何的同步工作,而由於工作節點互不相依,因此該策略有容錯的優點,並且在先佔式虛擬機器特別好用。

多工作節點鏡像策略,則脫離實驗階段成為穩定API,MultiWorkerMirroredStrategy以同步數據平行性實例化分散式訓練,也就是說,開發者可以在多臺具有多個GPU的機器上,執行訓練工作。在同步訓練中,每個工作節點運算前後不同的數據片段,並會在更新模型之前匯總梯度。

TensorFlow Profiler也開始支持多節點訓練策略,TensorFlow Profiler是一套讓開發者評估,TensorFlow模型訓練性能和資源消耗的工具,供開發者探索模型操作時,硬體資源消耗以及瓶頸,以達到加快訓練速度的目的。過去TensorFlow Profiler可用來監控單一主機多GPU的訓練工作,而現在也可用來分析MultiWorkerMirroredStrategy訓練工作。

在TensorFlow 2.4中,Keras混合精度已成為穩定API。大多數TensorFlow模型都使用float32數據類型,但是部分像是float16低精度類型,使用較少的內存,因此在同一個模型中,同時使用32和16位元浮點數,可以提升訓練速度,官方提到,使用混合精度API可以讓模型獲得3倍性能,在TPU上性能提升60%。

另外,這個版本TensorFlow還加入支持NumPy API子集,tf.experimental.numpy模塊可以執行,經TensorFlow加速的NumPy程序碼,由於新模塊是以TensorFlow為基礎建構,因此可以與TensorFlow無縫互通,不只能夠存取所有TensorFlow API,還透過編譯和自動向量化,來提供最佳化執行性能。這項支持可以提供像是TensorFlow ND陣列與NumPy函數互通,或是TensorFlow NumPy函數接受tf.Tensor和np.ndarray輸入等操作。

相關焦點

  • TensorFlow 2.1.0-rc2發布
    pip install tensorflow安裝的TF默認也有gpu支持了(windows、linux),pip install tensorflow-gpu仍舊可以用,如果考慮到包的大小,也可以用只支持CPU的:tensorflow-cpuWindows用戶:為了使用新的/d2ReducedOptimizeHugeFunctions
  • mnist tensorflow 預測專題及常見問題 - CSDN
    實驗大致步驟如下,加載MNIST數據集,同時初始化網絡超參; 建立計算圖; 建立Session會話,執行計算圖進行AlexNet模型訓練和結果預測(訓練模型和評估模型)。/common_runtime/gpu/gpu_device.cc:958] 0 1 2 3 4 5 6 7 2019-06-02 11:17:16.979185: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971] 0: N Y Y Y N N N N 2019-06-02 11:17:16.979191: I tensorflow
  • 使用Amazon SageMaker 運行基於 TensorFlow 的中文命名實體識別
    我們知道,預訓練模型可以大幅提升計算機視覺的深度學習算法表現,而在NLP領域也是同理,預訓練語言模型可以有效提升文本分類、機器翻譯、命名實體識別等任務的效果。預訓練語言模型經歷了從詞嵌入(Word Embedding),到BERT,再到ALBERT的演進。
  • 令人困惑的 TensorFlow!(II)
    絕大多數情況下,名稱會自動創建;例如,一個常量節點會以 Const 命名,當創建更多常量節點時,其名稱將是 Const_1,Const_2 等。還可以通過 name=的屬性設置節點名稱,列舉後綴仍會自動添加:代碼:import tensorflow as tfa = tf.constant(0.)b = tf.constant(1.)
  • 令人困惑的TensorFlow!
    目標受眾本教程適用於那些在編程和機器學習方面有一定經驗,並想要學習 TensorFlow 的人。例如:一位想在機器學習課程的最後一個項目中使用 TensorFlow 的計算機科學專業的學生;一位剛被分配到涉及深度學習項目的軟體工程師;或是一位處於困惑中的新的 Google AI Resident 新手(向過去的 Jacob 大聲打招呼)。
  • 【TF秘籍】令人困惑的 TensorFlow!(II)
    絕大多數情況下,名稱會自動創建;例如,一個常量節點會以 Const 命名,當創建更多常量節點時,其名稱將是 Const_1,Const_2 等。還可以通過 name=的屬性設置節點名稱,列舉後綴仍會自動添加:代碼:import tensorflow as tfa = tf.constant(0.)b = tf.constant(1.)
  • TensorFlow 2.4來了:上線對分布式訓練和混合精度的新功能支持
    官方博客,本次更新的主要內容整理如下:tf.distribute 中的新功能參數伺服器策略在 TensorFlow 2.4 中,tf.distribute 模塊引入了對使用 ParameterServerStrategy 和自定義訓練循環進行模型異步訓練的試驗性支持
  • 【TF專輯 1】TensorFlow在Win10上的安裝教程和簡單示例
    :pip方式、Anaconda方式 Tips:在Windows上目前支持python3.5.xgpu版本需要cuda8,cudnn5.1一、安裝環境TensorFlow即可以支持CPU,也可以支持CPU+GPU。
  • 如何在PyTorch和TensorFlow中訓練圖像分類模型
    TensorFlow如此受歡迎的最大原因之一是它支持多種語言來創建深度學習模型,例如Python,C ++和R。它提供了詳細的文檔和指南的指導。TensorFlow包含許多組件。以下是兩個傑出的代表:TensorBoard:使用數據流圖幫助有效地可視化數據TensorFlow:對於快速部署新算法/實驗非常有用TensorFlow當前正在運行2.0版本,該版本於2019年9月正式發布。我們還將在2.0版本中實現CNN。我希望你現在對PyTorch和TensorFlow都有基本的了解。現在,讓我們嘗試使用這兩個框架構建深度學習模型並了解其內部工作。
  • TensorFlow 2入門指南,初學者必備!
    tensorflow as tffrom tensorflow.keras.layers import Densefrom tensorflow.keras.models import Sequential在這裡,我們從tensorflow
  • TensorFlow2.x GPU版安裝與CUDA版本選擇指南
    大家根據自己的開發平臺選擇合適的版本下載即可Windows平臺下載地址:https://www.python.org/downloads/windows/    下載後可以直接安裝,安裝完成後我們準備TensorFlow2.x的GPU版本安裝,分兩步完成,TensorFlow最新版為2.3(這裡安裝2.2):    ① 打開cmd窗口,輸入pip install tensorflow
  • 如何用Tensorflow object-detection API訓練模型,找到聖誕老爺爺?
    本文將教會你如何通過Tensorflow object-detection API訓練自己的目標檢測模型(object detector),來找到聖誕老人。本文的代碼可見於github:https://github.com/turnerlabs/character-finder代碼產生的模型可被延伸用於抓取其他的動畫或者真實人物。
  • 谷歌重磅推出TensorFlow Graphics:為3D圖像任務打造的深度學習利器
    訓練一個能夠解決這些複雜的3D視覺任務的機器學習系統通常需要大量的數據。由於給數據打標籤是一個成本高昂而且複雜的過程,因此設計能夠理解三維世界、而且無需太多監督的機器學習模型的機制非常重要。在這種設置中,計算機視覺和計算機圖形學相輔相成,形成了一個類似於自動編碼器的機器學習系統,能夠以一種自監督的方式進行訓練。
  • TensorFlow2.0-Keras入門
    之前發了一篇《ULMFiT-用於文本分類的通用語言模型微調》後,由於忙其他的事情,公眾號寫作就暫時擱置了,今天登錄公眾號後臺發現有了26個關注者,那一瞬間簡直是滿滿的感動。最近在知乎上寫一些學習tensorflow2.0的筆記心得,整理成中文教程,希望幫助想學習tensorflow2的朋友更好的了解tensorflow2的同時,也是倒逼自己更好的學習。
  • 社交距離檢測器——Tensorflow檢測模型設計
    在隔離期間,我花時間在github上探索Tensorflow的大量預訓練模型。這樣做時,我偶然發現了一個包含25 個帶有性能和速度指標的預訓練對象檢測模型的存儲庫。擁有一些計算機視覺知識並給出了實際的背景知識,我認為使用其中之一來構建社交隔離應用程式可能會很有趣。
  • 詳解深度強化學習展現TensorFlow 2.0新特性(代碼)
    ,一切是否按著預測正常工作:>>> import tensorflow as tf>>> print(tf.通過Keras模型API實現的策略和價值首先,讓我們在單個模型類下創建策略和價值預估神經網絡:import numpy as npimport tensorflow as tfimport tensorflow.keras.layers as klclassProbabilityDistribution(tf.keras.Model
  • 入門 | 關於TensorFlow,你應該了解的9件事
    #5 你可以在瀏覽器中做任何事說到 JavaScript,你可以使用 TensorFlow.js 在瀏覽器中訓練和執行模型。使用 TensorFlow.js 在瀏覽器中執行實時人體姿態估計。打開你的相機試一下?
  • TensorFlow 2.X,會是它走下神壇的開始嗎?
    機器之心原創機器之心編輯部現在都 2021 年了,機器學習好填的坑都已經填了,大家都在想怎麼將模型用到各種實際任務上。我們再去討論深度學習框架,吐槽它們的體驗,會不會有點過時?並不會,新模型與新算法,總是框架的第一生產力。
  • TensorFlow Recommenders 現已開源,讓推薦系統更上一層樓!
    import tensorflow as tfimport tensorflow_datasets as tfdsimport tensorflow_recommenders as tfrs# Ratings data.
  • 【致敬周杰倫】基於TensorFlow讓機器生成周董的歌詞(附源碼)
    本文建立的模型就是基於以上原理。2、模型代碼設計要完成機器生成歌詞的工作看上去是一個生成模型,而生成模型一般都是無監督問題,但是我們需要將它轉化成有監督問題,原因是使用有監督學習可以發現數據內在的關聯性,比如上下文的銜接,然後用預測學習來代替無監督學習。