精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Google的深度學習框架TensorFlow的優勢分析

wFVr_Hardware_1 ? 來源:硬十AI ? 作者:硬十AI ? 2022-11-21 10:21 ? 次閱讀

1、Scalar、Vector、Marix、Tensor,點線面體一個都不少

我們先從點線面體的視角形象理解一下。點,標量(scalar);線,向量(vector);面,矩陣(matrix);體,張量(tensor)。我們再詳細看一下他們的定義

Scalar定義:標量是只有大小、沒有方向的“量”。一個具體的數值就能表征,如重量、溫度、長度等。

Vector定義:向量是即有大小、又有方向的“量”。由大小和方向共同決定,如力、速度等。

Matrix定義:矩陣是一個“按照長方陣列排列”的數組,而行數與列數都等于N的矩陣稱為N階矩陣,在卷積核中我們常用3x3或5x5矩陣。

Tensor定義:張量是一個“維度很多”的數組,它創造出了更高維度的矩陣、向量,在深度學習知識域的術語中張量也可解釋為數學意義的標量、向量和矩陣等的抽象。即標量定義為0級張量,向量定義為1級張量,矩陣定義為2級張量,將在三維堆疊的矩陣定義為3級張量,參考下圖。

621a5aee-68dd-11ed-8abf-dac502259ad0.png

2、深度學習依賴Tensor運算,GPU解決了算力瓶頸(1)卷積網絡神經中有海量的矩陣運算,包括矩陣乘法和矩陣加法 參考機器學習中的函數(4) - 全連接限制發展,卷積網絡閃亮登場卷積神經網絡(CNN)作為是實現深度學習的重要方法之一,整個網絡第一步就是應用卷積進行特征提取,通過幾輪反復后獲得優質數據,達成改善數據品質的目標,我們一起復習一下卷積層工作的這兩個關鍵步驟。

首先,進行圖像轉換:先把我們眼中的“圖像”變成計算機眼中的“圖像”。

625cb592-68dd-11ed-8abf-dac502259ad0.png

下一步,選擇一個卷積核進行“濾波”:假設以一個2×2的小型矩陣作為卷積核,這樣的矩陣也被稱為“濾波器”。如果把卷積核分別應用到輸入的圖像數據矩陣上(如上圖計算機眼中的貓),執行卷積運算得到這個圖像的特征圖譜(Feature Map)。從下圖體現看到,圖像的特性提取本質上就是一個線性運算,這樣的卷積操作也被稱為線性濾波。

628d5724-68dd-11ed-8abf-dac502259ad0.png

2012年,辛頓(Hinton)和他的博士生(Alex Krizhevsky)等提出了經典的Alexnet,它強化了典型CNN的架構,這個網絡中卷積層更深更寬,通過大量的”卷積層->激活層->池化層”的執行過程提純數據,因此在這個網絡中有海量的矩陣運算,包括矩陣乘法和矩陣加法。

62a4b34c-68dd-11ed-8abf-dac502259ad0.png

(2)應用GPU解決算力瓶頸,Tensor是最基礎的運算單元

Alexnet之所以是經典中的經典,除了它強化了典型CNN的架構外,還有其它創新點,如首次在CNN中應用了ReLU激活函數、Dropout機制,最大池化(Max pooling)等技術等。還有一點特別重要,Alexnet成功使用GPU加速訓練過程(還開源了CUDA代碼),上世紀90年代限制Yann LeCun等人工智能科學家的計算機硬件“算力瓶頸”被逐步打開。

深度學習為什么需要GPU呢?因為只有GPU能夠提供“暴力計算”能力,降低訓練時間。大家都知道,GPU處理器擁有豐富的計算單元ALU,它相對于CPU處理器架構的優勢就在于能執行“并行運算”,參考下圖中的一個簡單的矩陣乘法就是矩陣某一行的每一個數字,分別和向量的每一個數字相乘之后再相加,這就是并行運算。

62b4497e-68dd-11ed-8abf-dac502259ad0.png

而如剛才討論的深度學習中的運算大部分都是矩陣運算,讓計算從“單個的”變成“批處理的”,充分利用GPU的資源。而Tensor是專門針對GPU來設計的,Tensor作為一個可以運行在GPU上的多維數據,加速運算速度,提升運算效率。參考深度學習靠框架,期待國產展雄風中的討論,在一個框架中,必須有“張量對象”和“對張量的計算”作基礎,TensorFlow、PyTorch等等主流框架中,張量Tensor都是最基礎的運算單元。

3、提升Tensor效率,大家各顯神通 現在主要的GPU廠家為了能夠提高芯片AI、HPC等應用場景下的加速能力,都在芯片計算單元的設計上花大力氣,不斷創新優化。比如AMD的CDNA架構中計算是通過Compute Unit來實現的,在Compute unit中就有Scalar、Vector、Matrix等不同的計算功能模塊,針對不同的計算需求各司其職。Nvidia的計算是通過SM來實現的,SM中計算從Cuda Core發展到Tensor Core,針對Tensor的計算效率越來越高,到今年三月份發布的H100系列中,Tensor Core已經發展到了第四代。而Google干脆就把自己的芯片定義為TPU(Tensor processing Unit),充分發揮Tensor加速能力,其中主要的模塊就是海量的矩陣乘法單元。(1)英偉達的Tensor Core 今年3月份黃教主穿著皮衣發布了H100(Hopper系列),Nvidia每一代GPU都是用一個大神的名字命名,這個系列是向Grace Hopper致敬,她被譽為計算機軟件工程***、編譯語言COBOL之母。她也被譽為是計算機史上第一個發現Bug的人,有這樣一個故事,1947年9月9日當人們測試Mark II計算機時,它突然發生了故障。經過幾個小時的檢查后,工作人員發現了一只飛蛾被打死在面板F的第70號繼電器中,飛蛾取出后,機器便恢復了正常。當時為Mark II計算機工作的女計算機科學家Hopper將這只飛蛾粘帖到當天的工作手冊中,并在上面加了一行注釋,時間是15:45。隨著這個故事傳開,更多的人開始使用Bug一詞來指代計算機中的設計錯誤,而Hopper登記的那只飛蛾看作是計算機里上第一個被記錄在文檔中的Bug,以后debug(除蟲)變成了排除故障的計算機術語。

62eef60a-68dd-11ed-8abf-dac502259ad0.png

讓我們回到英偉達GPU的計算單元設計,Nvidia的9代GPU中計算單元架構演進過程如下,Tesla2.0(初代)-> Fermi(Cuda core提升算力)-> Kepler(core數量大量增長)-> Maxwell(Cuda core結構優化)-> Pascal(算力提升)-> Volta(第一代Tensor core提出,優化對深度學習的能力) -> Turning(第二代Tensor core)-> Ampere(第三代Tensor core)-> Hopper(第四代Tensor core),其中從Volta開始,每一代Tensor Core的升級都能帶來算力X倍的提升。Tensor core專門為深度學習矩陣運算設計,和前幾代的“全能型”的浮點運算單元CUDA core相比,Tensor core運算場景更有針對性,算力能力更強,下圖就是NV一個計算單元SM中各種模塊的組成,各種類型的計算模塊配置齊全。

632f709a-68dd-11ed-8abf-dac502259ad0.png

再詳細討論一下Tensor Core,Tensor Core是專為執行張量或矩陣運算而設計的專用執行單元,每個時鐘執行一次矩陣乘法,包含批次的混合精度乘法操作(區別于Cuda core每個時鐘執行單次混合精度的乘加操作),矩陣乘法(GEMM)運算是神經網絡訓練和推理的核心,Tenore Core更加高效。參考下圖(藍色和紫色為輸入,綠色是計算結果,中心的灰色部分就是計算單元),第一代Tencor Core加入Votal后,以4x4 矩陣乘法運算時為例,參考英偉達白皮書上的數據,優化后與前一代的Pascal相比,用于訓練的算力峰值提升了 12 倍,用于推理的算力峰值提升了6 倍。

63516970-68dd-11ed-8abf-dac502259ad0.png

(2)Google的TPU

2013年,Google意識到數據中心快速增長的算力需求方向,從神經網絡興起開始矩陣乘加成為重要的計算loading,同時商用GPU很貴,也為了降低成本,Google選擇了擼起袖子自己干,定制了Tensor Processing Unit(TPU)專用芯片,發展到現在已經經歷了4代了。

TPU V1:2014年推出,主要用于推理,第一代TPU指令很少,能夠支持矩陣乘法(MatrixMultiple / Convole) 和特定的激活功能(activation)。

TPU V2:2017年推出,可用于訓練,這一代芯片指令集豐富了;提升計算能力,可以支持反向傳播了;內存應用了高帶寬的HBM;針對集群方案提供了芯片擴展能力。

TPU V3:2018年推出,在V2的結構上進一步優化,對各個功能模塊的性能都做了提升。

TPU V4:2022年推出,算力繼續大幅度提升,尤其是集群能力不斷優化后,TPU成為谷歌云平臺上很關鍵的一環。

相信Google會在Tensor processing unit的路徑上繼續加速,對于云大廠來說,這是業務底座。

4、只有硬件是不夠的,TensorFlow讓Tenor流動起來 我們看到了各個廠家在硬件上的不懈努力和快速進步,當然,只有硬件是遠遠不夠的,一個好的Deep Learning Framework才能發揮這些硬件的能力,我們還是從最出名的框架TensorFlow說起。

2011年,Google公司開發了它的第一代分布式機器學習系統DistBelief。著名計算機科學家杰夫·迪恩(Jeff Dean)和深度學習專家吳恩達(Andrew )都是這個項目的成員。通過杰夫·迪恩等人設計的DistBelief,Google可利用它自己數據中心數以萬計的CPU核,建立深度神經網絡。借助DistBelief,Google的語音識別正確率比之前提升了25%。除此之外,DistBelief在圖像識別上也大顯神威。2012年6月,《紐約時報》報道了Google通過向DistBelief提供數百萬份YouTube視頻,來讓該系統學習貓的關鍵特征,DistBelief展示了他的自學習能力。DistBelief作為谷歌X-實驗室的“黑科技”開始是是閉源的,Google在2015年11月,Google將它的升級版實現正式開源(遵循Apache 2.0)。而這個升級版的DistBelief,也有了一個我們熟悉的名字,它就是未來深度學習框架的主角“TensorFlow”。

TensorFlow命名源于其運行原理,即“讓張量(Tensor)流動起來(Flow)”,這是深度學習處理數據的核心特征。TensorFlow顯示了張量從數據流圖的一端流動到另一端的整個計算過程,生動形象地描述了復雜數據結構在人工神經網絡中的流動、傳輸、分析和處理模式。

636b68fc-68dd-11ed-8abf-dac502259ad0.png

Google的深度學習框架TensorFlow的有三大優點

形象直觀:TensorFlow有一個非常直觀的構架,它有一個“張量流”,用戶可以借助它的工具(如TensorBoard)很容易地、可視化地看到張量流動的每一個環節。

部署簡單:TensorFlow可輕松地在各種處理器上部署,進行分布式計算,為大數據分析提供計算能力的支撐。

平臺兼容:TensorFlow跨平臺性好,不僅可在Linux、Mac和Windows系統中運行,還可在移動終端下工作。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Google
    +關注

    關注

    5

    文章

    1757

    瀏覽量

    57414
  • 深度學習
    +關注

    關注

    73

    文章

    5492

    瀏覽量

    120976

原文標題:【AI】深度學習框架(1)

文章出處:【微信號:Hardware_10W,微信公眾號:硬件十萬個為什么】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    卷積神經網絡的實現工具與框架

    TensorFlow是由Google Brain團隊開發的開源機器學習框架,它支持多種深度學習
    的頭像 發表于 11-15 15:20 ?202次閱讀

    NVIDIA推出全新深度學習框架fVDB

    在 SIGGRAPH 上推出的全新深度學習框架可用于打造自動駕駛汽車、氣候科學和智慧城市的 AI 就緒型虛擬表示。
    的頭像 發表于 08-01 14:31 ?522次閱讀

    TensorFlow是什么?TensorFlow怎么用?

    TensorFlow是由Google開發的一個開源深度學習框架,它允許開發者方便地構建、訓練和部署各種復雜的機器
    的頭像 發表于 07-12 16:38 ?571次閱讀

    tensorflow和pytorch哪個更簡單?

    TensorFlow和PyTorch都是用于深度學習和機器學習的開源框架TensorFlow
    的頭像 發表于 07-05 09:45 ?779次閱讀

    tensorflow和pytorch哪個好

    :2015年由Google Brain團隊發布。 語言支持 :主要使用Python,也支持C++、Java等。 設計哲學 :TensorFlow是一個端到端的機器學習平臺,支持從研究到生產的所有階段
    的頭像 發表于 07-05 09:42 ?627次閱讀

    keras模型轉tensorflow session

    和訓練深度學習模型。Keras是基于TensorFlow、Theano或CNTK等底層計算框架構建的。TensorFlow是一個開源的機器
    的頭像 發表于 07-05 09:36 ?461次閱讀

    如何使用Tensorflow保存或加載模型

    TensorFlow是一個廣泛使用的開源機器學習庫,它提供了豐富的API來構建和訓練各種深度學習模型。在模型訓練完成后,保存模型以便將來使用或部署是一項常見的需求。同樣,加載已保存的模
    的頭像 發表于 07-04 13:07 ?1306次閱讀

    深度學習常用的Python庫

    深度學習常用的Python庫,包括核心庫、可視化工具、深度學習框架、自然語言處理庫以及數據抓取庫等,并詳細
    的頭像 發表于 07-03 16:04 ?568次閱讀

    TensorFlow的定義和使用方法

    TensorFlow是一個由谷歌人工智能團隊谷歌大腦(Google Brain)開發和維護的開源機器學習庫。它基于數據流編程(dataflow programming)的概念,將復雜的數學運算表示為
    的頭像 發表于 07-02 14:14 ?675次閱讀

    TensorFlow與PyTorch深度學習框架的比較與選擇

    深度學習作為人工智能領域的一個重要分支,在過去十年中取得了顯著的進展。在構建和訓練深度學習模型的過程中,深度
    的頭像 發表于 07-02 14:04 ?887次閱讀

    深度學習與傳統機器學習的對比

    在人工智能的浪潮中,機器學習深度學習無疑是兩大核心驅動力。它們各自以其獨特的方式推動著技術的進步,為眾多領域帶來了革命性的變化。然而,盡管它們都屬于機器學習的范疇,但
    的頭像 發表于 07-01 11:40 ?1190次閱讀

    谷歌模型框架是什么軟件?谷歌模型框架怎么用?

    谷歌模型框架通常指的是谷歌開發的用于機器學習和人工智能的軟件框架,其中最著名的是TensorFlowTensorFlow是一個開源的機器
    的頭像 發表于 03-01 16:25 ?798次閱讀

    AURIX TC397是否可以搭配Google TensorFlow的演算法去運算?

    請問各位大神,AURIX TC397 是否可以搭配 Google TensorFlow 的演算法 去運算??
    發表于 02-18 06:05

    如何使用TensorFlow構建機器學習模型

    在這篇文章中,我將逐步講解如何使用 TensorFlow 創建一個簡單的機器學習模型。
    的頭像 發表于 01-08 09:25 ?914次閱讀
    如何使用<b class='flag-5'>TensorFlow</b>構建機器<b class='flag-5'>學習</b>模型

    GPU在深度學習中的應用與優勢

    學習中究竟擔當了什么樣的角色?又有哪些優勢呢?一、GPU加速深度學習訓練并行處理GPU的核心理念在于并行處理。在深度
    的頭像 發表于 12-06 08:27 ?1208次閱讀
    GPU在<b class='flag-5'>深度</b><b class='flag-5'>學習</b>中的應用與<b class='flag-5'>優勢</b>