乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      良心推薦!機器學習和深度學習最佳框架

       LibraryPKU 2017-11-20



             機器學習框架和深度學習框架之間是有區(qū)別的。本質上,機器學習框架涵蓋用于分類,回歸,聚類,異常檢測等各種學習方法,并且其可以不包括神經網(wǎng)絡方法。深度學習或深度神經網(wǎng)絡(DNN)框架涵蓋具有許多隱藏層的神經網(wǎng)絡拓撲。層越多,可用于聚類和分類的特征越復雜。



             Caffe,CNTK,DeepLearning4j,Keras,MXNet和TensorFlow是深度學習框架。Scikit-learning和Spark MLlib是機器學習框架。而Theano跨越了這兩個類別。

      一般來說,簡單的機器學習方法不需要GPU加速。雖然你可以在一個或多個CPU上訓練DNN,但這種訓練往往是緩慢的,需要訓練的神經元和層越多,可用于訓練的數(shù)據(jù)越多,需要的時間就越長。


      Caffe


             Caffe深度學習項目,最初是一個強大的圖像分類框架,目前似乎停滯不前,它已被卡在1.0版RC3一年多了,并且其創(chuàng)始人已離開該項目 。但它仍然有良好的卷積網(wǎng)絡圖像識別和良好的Nvidia CUDA GPU支持。但它的模型通常需要大量的GPU內存(超過1GB)運行。


              Caffe有命令行,Python和Matlab接口,它依靠ProtoText文件來定義模型和解算器。Caffe在其自己的模型模式中逐層定義網(wǎng)絡。當數(shù)據(jù)和派生數(shù)據(jù)向前向后遍歷網(wǎng)絡時,Caffe存儲,通信和操作信息為blob(二進制對象),內部是以C連續(xù)方式存儲的N維數(shù)組。

      Caffe已經證明其在圖像分類中的有效性,但它的鼎盛時期似乎已經過去了。除非現(xiàn)有的Caffe模型符合你的需要,或者可以根據(jù)你的目的進行微調,否則,我建議使用TensorFlow,MXNet或CNTK。


      Microsoft認知工具包


              Microsoft Cognitive Toolkit是一個快速的易使用的深度學習軟件包,但與TensorFlow相比,其范圍有限。它有各種各樣的模型和算法,極好的支持Python和Jupyter notebook,一個有趣的聲明性BrainScript神經網(wǎng)絡配置語言,以及在Windows和Ubuntu Linux上可自動部署。


            在缺點方面,當我審查Beta 1文檔時發(fā)現(xiàn)還沒完全更新到CNTK 2,并且包沒有MacOS支持。雖然自Beta 1以來,CNTK 2有許多改進,包括新的內存壓縮模式,以減少GPU和新的Nuget安裝包的內存使用,但MacOS支持仍然缺失。


             CNTK 2組件可以處理來自Python,C ++或BrainScript的多維密集或稀疏數(shù)據(jù)。認知工具包包括各種各樣的神經網(wǎng)絡類型:FFN(前饋),CNN(卷積),RNN / LSTM(遞歸/長期短期記憶)等。它支持強化學習,生成監(jiān)督和非監(jiān)督學習,自動超參數(shù)調整,以及從Python添加新的,用戶定義的核心組件在GPU上的能力。它能夠在多個GPU和機器上做到精確的并行。


      MXNet


             MXNet是一個便攜式,可擴展的深度學習庫,是亞馬遜推出的DNN框架選擇。MXNet可跨多個主機擴展到多個GPU,線性擴展效率接近85%,具有出色的開發(fā)速度,可編程性和可移植性。它不同程度的支持Python,R,Scala,Julia和C ++,它允許混合命令式編程風格。

      MXNet目前支持在Python,R,Scala,Julia和C ++中構建和訓練模型,訓練的MXNet模型也可以用于Matlab和JavaScript中的預測。無論選擇哪種語言來構建模型,MXNet都會調用優(yōu)化的C ++后端引擎。


      Scikit-learn


            Scikit-learn Python框架有廣泛的可靠的機器學習算法,但沒有深入學習。如果你是一個Python的粉絲,Scikit-learn可能是你最好的選擇。Scikit-learn是一個強大的,成熟的機器學習庫與各種各樣的成熟算法集成。它相對容易安裝,學習和使用,它有很好的例子和教程。


             另一方面,Scikit-learn不包括深度學習或強化學習,缺少圖形模型和序列預測,并且不能真正使用除Python之外的語言。它不支持PyPy,Python即時編譯器或GPU。它使用Cython來處理快速函數(shù),例如內循環(huán)。

       

      Spark MLlib

       

             Spark MLlib是Spark的開源機器學習庫,提供常見的機器學習算法,如分類,回歸,聚類和協(xié)同過濾(但不包括DNN)以及特征提取,轉換,維數(shù)縮減以及構建,評估和調整機器學習管道。Spark MLlib還包括用于保存和加載算法,用于數(shù)據(jù)處理以及進行線性代數(shù)和統(tǒng)計的實用程序。


              Spark MLlib是在Scala中編寫的,并使用線性代數(shù)包BreezeBreeze依靠netlib-java來優(yōu)化數(shù)值處理,雖然在開源分布中意味著優(yōu)化使用CPU。Databricks提供與GPU配合使用的定制Spark集群,這有可能帶來一個10倍的速度改進,用于訓練具有大數(shù)據(jù)的復雜機器學習模型。


             Spark MLlib擁有針對Scala和Java的完整API,主要是針對Python的完整API以及針對R的部分API??梢酝ㄟ^計算示例來獲得良好的覆蓋率:54個Java和60個Scala機器學習示例,52個Python 機器學習示例,5個R示例。


      TensorFlow


             TensorFlow,Google的便攜式機器學習和神經網(wǎng)絡庫,執(zhí)行和擴展很好,雖然它有點難學。TensorFlow擁有各種各樣的模型和算法,并且在具有GPU(用于培訓)或Google TPU(用于生產規(guī)模預測)的硬件上具有出色的性能。它還具有對Python的良好支持,良好的文檔和軟件,用于顯示和理解描述其計算TensorBoard的數(shù)據(jù)流圖。


             TensorFlow可以方便地處理各種神經網(wǎng)絡,包括目前正在轉換圖像識別和語言處理領域的深度CNN和LSTM循環(huán)模型。調試異步網(wǎng)絡求解器非常簡單,TensorBoard軟件可以幫助可視化圖形。



             從Caffe,Microsoft Cognitive Toolkit,MXNet和TensorFlow的深度學習包中選擇一個是很困難的決定。我不建議選擇Caffe,因為它的發(fā)展停滯不前。然而,選擇其他三個中的一個也很棘手。


              Cognitive Toolkit現(xiàn)在有Python和C ++ API以及網(wǎng)絡配置語言BrainScript。 如果喜歡使用配置文件,那么Cognitive Toolkit可能是一個不錯的選擇。但它似乎不像TensorFlow一樣成熟,它不能在MacOS上運行。

      MXNet支持Python,R,Scala,Julia和C ++,但其最支持的API是用于Python的。MXNet在多個主機的多個GPU上展現(xiàn)出良好的擴展性(85%的線性)。


             TensorFlow可能是三個包中最成熟的,并且它是一個很好的選擇,TensorFlow有基本的構建塊,但也需要寫大量的代碼來描述一個神經網(wǎng)絡。有三個簡化的API與TensorFlow一起來解決這個問題:tf.contrib.learn,TF-Slim和Keras。支持TensorFlow的最終考慮是TensorBoard,這對于可視化和理解數(shù)據(jù)流圖非常有用。


        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多