主流機器學習框架


一、TensorFlow

TensorFlow 是一個使用數據流圖進行數值計算的開源軟件庫。圖中的節點表示數學運算,而圖邊表示在它們之間傳遞的多維數據陣列(又稱張量)。靈活的體系結構允許你使用單個API將計算部署到桌面、服務器或移動設備中的一個或多個CPU或GPU。

被定義為“最流行”、“最被認可”的開源深度學習框架, 擁有產品級的高質量代碼,有 Google 強大的開發、維護能力的加持,整體架構設計也非常優秀。

TensorFlow 是 Google 的開源人工智能工具。它提供了一個使用數據流圖進行數值計算的庫。可以運行在多種不同的有着單或多 CPU 和 GPU 的系統,甚至可以在移動設備上運行。它擁有深厚的靈活性、真正的可移植性、自動微分功能,並且支持 C++ / Python (Go,Java,Lua,Javascript,或者是R)。

但由於 TensorFlow 的每個計算流都必須構造為一個靜態圖,且缺乏符號性循環,增加了計算困難。TensorFlow 在執行性能方面並無優勢,對 RNN 支持不如 Theano,缺乏許多預先訓練的模型。

二、Apache Spark

Apache Spark 是專為大規模數據處理而設計的快速通用的計算引擎  。現在形成一個高速發展應用廣泛的生態系統。

Spark 主要有三個特點  [3]  :

1、易用性

高級 API 剝離了對集群本身的關注,Spark 應用開發者可以專注於應用所要做的計算本身。Spark 提供了80多個高級運算符。

2、更快的速度

Spark 很快,支持交互式計算和復雜算法。內存計算下,Spark 比 Hadoop 快100倍。

3、通用性

Spark 是一個通用引擎,可用它來完成各種各樣的運算,包括 SQL 查詢、文本處理、 機器學習等.
而在 Spark 出現之前,我們一般需要學習各種各樣的引擎來分別處理這些需求。
Spark 提供了大量的庫,包括Spark Core、Spark SQL、Spark Streaming、MLlib、GraphX。 開發者可以在同一個應用程序中無縫組合使用這些庫。支持多種資源管理器

4、豐富的資源管理器

Spark 支持 Hadoop YARN,Apache Mesos,及其自帶的獨立集群管理器
 
Spark核心模塊圖:
總結:Spark主要是一個分布式大數據計算引擎,其中包含深度學習的模塊,所以也被廣泛應用與機器學習,但並不是像TensorFlow那樣專業
 

三、Deeplearning4j:為 Java 用戶量身定制

Deeplearning4j(以下簡稱:DL4J)是 Java 和 Scala 環境下的一個開源分布式的深度學習項目,可以構建、定型和部署神經網絡。

DL4J 與 Hadoop 和 Spark 集成,支持分布式 CPU 和 GPU,為商業環境,而非研究工具目的所設計。DL4J 支持 YARN 與 RBM、DBN、CNN、RNN、RNTN 和 LTSM等多種深度網絡架構,還對矢量化庫 Canova 提供支持。

DL4J 使用 Java 語言實現,本質上比 Python 快,在圖像識別、欺詐檢測和自然語言處理方面的表現出眾。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM