中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. "); //-->

        博客專欄

        EEPW首頁 > 博客 > 原創(chuàng) | 讓你捷足先登的深度學習框架

        原創(chuàng) | 讓你捷足先登的深度學習框架

        發(fā)布人:數(shù)據(jù)派THU 時間:2023-01-19 來源:工程師 發(fā)布文章

        對于據(jù)科學的初學者來說,利用開源的深度學習框架,可以大幅度簡化復雜的大規(guī)模度學習模型的實現(xiàn)過程。在深度學習框架下構建模型,無需花費幾天或幾周的時間從頭開始編寫代碼,便可以輕松實現(xiàn)諸如卷積神經(jīng)網(wǎng)絡這樣復雜的模型。在本文中,將介紹幾種非常有用的深度學習框架、它們的優(yōu)點以及應用,通過對每個框架進行比較,研發(fā)人員了解如何有選擇地使用它們,高效快捷完成項目任務。


        1. 深度學習框架概述


        深度學習框架是一種界面、庫或工具,它使編程人員在無需深入了解底層算法的細節(jié)的情況下,能夠更容易、更快速地構建深度學習模型。深度學習框架利用預先構建和優(yōu)化好的組件集合定義模型,為模型的實現(xiàn)提供了一種清晰而簡潔的方法。


        利用恰當?shù)目蚣芸梢钥焖贅嫿P?,而無需編寫數(shù)百行代碼,一個良好的深度學習框架具備以下關鍵特征:


        • 優(yōu)化的性能

        • 易于理解和編碼

        • 良好的社區(qū)支持,

        • 并行化的進程,以減少計算

        • 自動計算梯度


        這五點也是用來挑選五大頂級深度學習框架的首選標準。


        2. PyTorch


        PyTorch是Torch深度學習框架的一個接口,可用于建立深度神經(jīng)網(wǎng)絡和執(zhí)行張量計算。Torch是一個基于Lua的框架,而PyTorch則運行在Python上。


        PyTorch是一個Python包,它提供張量計算。張量是多維數(shù)組,就像numpy的ndarray一樣,它也可以在GPU上運行。PyTorch使用動態(tài)計算圖,PyTorch的Autograd軟件包從張量生成計算圖,并自動計算梯度。


        與特定功能的預定義的圖表不同,PyTorch提供了一個框架,用于在運行時構建計算圖形,甚至在運行時也可以對這些圖形進行更改。當不知道創(chuàng)建神經(jīng)網(wǎng)絡需要多少內(nèi)存的情況下,這個功能便很有價值。


        PyTorch靈活性大,可以使用PyTorch處理各種深度學習的任務,包括但不局限于:


        • 影像(檢測、分類等)

        • 文本(自然語言學習)

        • 增強學習


        3. JAX


        谷歌最新推出的JAX,官方定義為CPU、GPU和TPU上的NumPy。它具有出色的自動微分(differentiation)功能,是可用于高性能機器學習研究的python庫。Numpy在科學計算領域十分普及,但是在深度學習領域,由于它不支持自動微分和GPU加速,所以更多的是使用Tensorflow或Pytorch這樣的深度學習框架。


        JAX使用 XLA 在諸如GPU和TPU的加速器上編譯和運行NumPy。它與 NumPy API 非常相似, numpy 完成的事情幾乎都可以用 jax.numpy 完成。


        XLA是TensorFlow底層做JIT編譯優(yōu)化的工具,XLA可以對計算圖做算子Fusion,將多個GPU Kernel合并成少量的GPU Kernel,用以減少調(diào)用次數(shù),可以大量節(jié)省GPU Memory IO時間。Jax本身并沒有重新做執(zhí)行引擎層面的東西,而是直接復用TensorFlow中的XLA Backend進行靜態(tài)編譯,以此實現(xiàn)加速。


        JAX在偏微分方程求解問題上的表現(xiàn)尤為突出,研究人員試了試分別在PyTorch和JAX兩種框架上運行幾種預訓練模型,發(fā)現(xiàn)JAX的速度大約是PyTorch的6倍。JAX在以分子動力學為代表的科學計算領域的巨大潛力。


        4. TensorFlow


        TensorFlow由谷歌大腦團隊的研究人員和工程師研發(fā),它是深度學習領域中最常用的框架。


        TensorFlow之所以流行的原因有兩點:首先,它是完全開源的,并且有出色的社區(qū)支持。TensorFlow為大多數(shù)復雜的深度學習模型預先編寫好了代碼,比如遞歸神經(jīng)網(wǎng)絡和卷積神經(jīng)網(wǎng)絡,其次,它支持多種語言來創(chuàng)建深度學習模型,比如Python語言、C語言和R語言等,并且有不錯的文檔和指南支持。


        TensorFlow有許多組件,其中最為突出的是:


        • Tensorboard:幫助使用數(shù)據(jù)流圖進行有效的數(shù)據(jù)可視化;

        • TensorFlow:用于快速部署新算法/試驗。


        TensorFlow的架構靈活,能夠在一個或多個CPU(以及GPU)上部署深度學習模型,典行的TensorFlow應用場景如下:


        • 基于文本的應用:語言檢測、文本摘要

        • 圖像識別:圖像字幕、人臉識別、目標檢測

        • 聲音識別

        • 時間序列分析

        • 視頻分析


        5. Keras


        Keras用Python編寫,可以在TensorFlow(以及CNTK和Theano)之上運行。TensorFlow的接口是一個低級庫,新用戶可能會很難理解某些實現(xiàn)。


        而Keras是一個高層的API,它為快速實驗而開發(fā)。因此,如果希望獲得快速結(jié)果,Keras會自動處理核心任務并生成輸出。Keras支持卷積神經(jīng)網(wǎng)絡和遞歸神經(jīng)網(wǎng)絡,可以在CPU和GPU上無縫運行。


        深度學習的初學者經(jīng)常會抱怨:無法正確理解復雜的模型。如果你是這樣的用戶,Keras便是正確選擇!它的目標是最小化用戶操作,并使其模型真正容易理解。


        Keras有多種架構,用于解決各種各樣的問題,其中最為典型的應用是圖像分類!


        6. Caffe


        CAFE是另一個面向圖像處理領域的、比較流行的深度學習框架,它是由賈陽青(Yangqing Jia)在加利福尼亞伯克利大學讀博士期間開發(fā)的,它也是開源的!


        雖然Caffe對遞歸網(wǎng)絡和語言建模的支持不如前面所述的幾個框架。但是Caffe最突出的優(yōu)點是:只需單個NVIDIA K40 GPU,它便可以每天處理超過六千萬張圖像,其中 1毫秒/圖像用于推理,4毫秒/圖像用于學習。


        它為C、Python、MATLAB等接口以及傳統(tǒng)的命令行提供了支持。


        通過Caffe Model Zoo框架可訪問用于解決深度學習問題的預訓練網(wǎng)絡、模型和權重。這些模型可完成下述任務:


        1) 簡單的遞歸

        2) 大規(guī)模視覺分類

        3) 用于圖像相似性的SiameSE網(wǎng)絡

        4) 語音和機器人應用


        7. Deeplearning4j


        對于Java程序員來說,Deeplearning4j理想的深度學習框架!


        Deeplearning4j用Java實現(xiàn),與Python相比效率更高。它使用稱為ND4J的張量庫,提供了處理n維數(shù)組(也稱為張量)的能力。該框架還支持CPU和GPU。


        Deeplearning4j將加載數(shù)據(jù)和訓練算法的任務作為單獨的過程處理,這種功能分離提供了很大的靈活性。這成為了它的突出優(yōu)點。!


        Deeplearning4j適用于圖像、CSV 和純文本等不同的數(shù)據(jù)類型。


        可以使用Deeplearning4j構建的深度學習模型有:


        1) 卷積神經(jīng)網(wǎng)絡(CNNs)

        2) 遞歸神經(jīng)網(wǎng)絡(RNNs)

        3) 長短時記憶(LSTM)等多種結(jié)構.


        8. 深度學習框架之間的對比


        上面已經(jīng)討論了六種較為流行的深度學習框架,每一種都獨具特性,那么數(shù)據(jù)科學家會從中如何做出選擇?


        當接到一個新的項目時,如何決定采用哪個框架?為此,需要了解每個框架的優(yōu)點和局限性。如果選對了正確的框架,會起到事半功倍的效果。某些框架在處理圖像數(shù)據(jù)時工作得非常好,但無法解析文本數(shù)據(jù);某些框架在處理圖像和文本數(shù)據(jù)時,性能很好,但是它們的內(nèi)部工作原理很難理解。


        在本節(jié)中,使用以下標準比較上述深度學習框架:


        1) 社區(qū)支持力度

        2) 使用的語言

        3) 接口

        4) 對預訓練的模型的支持


        所有這些框架都是開源的,支持CUDA,并有預訓練的模型。但是,應該如何正確開始,應該選擇哪個框架來構建(初始)深度學習模型?讓我們來做詳細的討論!


        先來說說TensortFlow。TensorFlow能處理圖像以及基于序列的數(shù)據(jù),如果你是深度學習的初學者,或者對線性代數(shù)和微積分等數(shù)學概念沒有堅實的基礎,那么TensortFlow的學習曲線將會十分陡峭。對于剛起步的人來說,TensorFlow可能過于復雜。建議需要不斷練習,不斷探索社區(qū),并繼續(xù)閱讀文章以掌握TensorFlow的訣竅。一旦對這個框架有了一個很好的理解,實現(xiàn)一個深度學習模型對你來說將是易如反掌。


        Keras是一個非常堅實的框架,可以開啟深度學習之旅。如果你熟悉Python,并且沒有進行一些高級研究或開發(fā)某種特殊的神經(jīng)網(wǎng)絡,那么Keras適合你。如果有一個與圖像分類或序列模型相關的項目,可以從Keras開始,很快便可以構建出一個工作模型。Keras也集成在TensorFlow中,因此也可以使用tf.keras.構建模型。


        在圖像數(shù)據(jù)上構建深度學習模型時,Caffe是不錯的選擇。但是,當用到遞歸神經(jīng)網(wǎng)絡和語言模型時,Caffe落后于其他框架。Caffe的主要優(yōu)點是,即使沒有強大的機器學習或微積分知識,也可以構建出深度學習模型。Caffe主要用于建立和部署移動電話和其他計算受限平臺的深度學習模型。


        正如前文所述,DeepleEarning4J是Java程序員的天堂,它為CNNS、RNN和LSTMS等不同的神經(jīng)網(wǎng)絡提供了大量的支持,在不犧牲速度的情況下它可以處理大量數(shù)據(jù)。



        *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。



        關鍵詞: AI

        相關推薦

        技術專區(qū)

        關閉