DL4J入門(一):概述

DeepLearning4J(DL4J)是一套基於Java語言的神經網絡工具包,可以構建、定型和部署神經網絡。DL4J與Hadoop和Spark集成,支持分佈式CPU和GPU,為商業環境(而非研究工具目的)所設計。Skymind是DL4J的商業支持機構。

Deeplearning4j擁有先進的技術,以即插即用為目標,通過更多預設的使用,避免多餘的配置,讓非企業也能夠進行快速的原型製作。DL4J同時可以規模化定製。DL4J遵循Apache 2.0許可協議,一切以其為基礎的衍生作品均屬於衍生作品的作者。

功能介紹

Deeplearning4j包括了分佈式、多線程的深度學習框架,以及普通的單線程深度學習框架。定型過程以集群進行,也就是說,Deeplearning4j可以快速處理大量數據。神經網絡可通過[迭代化簡]平行定型,與 Java、 Scala 和 Clojure 均兼容。Deeplearning4j在開放堆棧中作為模塊組件的功能,使之成為首個為微服務架構打造的深度學習框架。

兼容以下分佈式框架:

  1. Cloudera CDH
  2. Hortonworks HDP
  3. NVIDIA DGXs
  4. Hadoop
  5. Hadoop Yarn
  6. Apache Spark
  7. Apache Flink
  8. Apache Storm
  9. Canonical
  10. Reacive Platform

支持構建以下神經網絡:

  1. 受限玻爾茲曼機
  2. 卷積網絡
  3. 循環網絡/LSTMs
  4. 深度置信網絡
  5. 深度自動編碼器
  6. 遞歸神經傳感器網絡
  7. 堆疊式降噪自動編碼器
  8. 深度強化學習

其他特性:

  1. 支持分佈式GPUs
  2. 可通過Keras導入Python模型
  3. 提供豐富的DL4J示例

核心組件介紹

下圖展示了DL4J各個庫在系統整體中所處的位置:

DL4J入門(一):概述

DATAVEC組件:用於數據的攝取、清理、連接、縮放、標準化和轉換的工具包,數據科學家或者開發人員可通過其中工具將原始圖像、視頻、聲音、文本和時間序列等數據轉換為特徵向量,輸入神經網絡。

DL4J組件:用於設計神經網絡,是DL4J的中心組件。DL4J的JavaDoc可以通過一下命令網址獲取:https://deeplearning4j.org/doc/

ND4J組件:是DL4J的數值處理庫和張量庫,在Jvm中實現Numpy功能。

  • ND4J 是 Java 科學運算引擎,用來驅動矩陣操作。
  • JavaCPP功能: Java 到 Objective-C 的橋,可像其他 Java 對象一樣來使用 Objective-C 對象。
  • CPU 後瑞:OpenMP、OpenBlas 或 MKL、與SIMD的擴展。
  • GPU 後瑞:最新CUDA 及 CuDNN。
  • ND4J的JavaDoc可在此處(http://nd4j.org/doc/)獲取。
  • ND4J示例請見此處(https://github.com/deeplearning4j/dl4j-examples/tree/master/nd4j-examples)。
  • ARBITER組件:Arbiter幫助您搜索超參數空間,為神經網絡尋找最理想的參數組合及架構:

  • 提供深度學習模型檢測、評估器
  • 能夠調整及優化機器學習模型
  • 使用Grid search和Random Search 作超參數尋優
  • 開源工具 ASF 2.0許可證:github.com/deeplearning4j/Arbiter
  • arbiter-core:Aribter-core用網格搜索等算法來搜索超參數空間。它會提供一個GUI界面。
  • arbiter-deeplearning4j:Arbiter可以同DL4J模型互動。在進行模型搜索時,您需要能運行模型。這樣可以對模型進行試點,進而找出最佳的模型。
  • 其他組件介紹

  • Keras Model Import(Keras模型導入)幫助用戶將已定型的Python和Keras模型導入DeepLearning4J和Java環境。參考https://deeplearning4j.org/cn/index.html#modelimport
  • DL4J-Examples(DL4J示例)包含圖像、時間序列及文本數據分類與聚類的工作示例。Github 上的DL4J 實例(https://github.com/deeplearning4j/dl4j-examples)
  • ScalNet是受Keras啟發而為Deeplearning4j開發的Scala語言包裝。它通過Spark在多個GPU上運行。
  • ScalNet針對Scala語言開發,功能相當於Keras。它是DeepLearning4J的Scala語言包裝,可以在多個GPU上運行Spark。
  • Github上的ScalNet代碼庫(https://github.com/deeplearning4j/ScalNet)
  • RL4J用於在JVM上實現深度Q學習、A3C及其他強化學習算法。
  • RL4J是在Java中實現深度Q學習、A3C及其他強化學習算法的庫和環境,與DL4J和ND4J相集成。
  • Github代碼庫:
  • RL4J(https://github.com/deeplearning4j/rl4j)
  • Gym集成(https://github.com/deeplearning4j/rl4j/tree/master/rl4j-gym)
  • RL4J玩《Doom》(https://github.com/deeplearning4j/rl4j/tree/master/rl4j-gym)

  • 本節完!

    文章參考自:DL4J中文網站:https://deeplearning4j.org/cn/index.html

    DL4J入門(一):概述


    分享到:


    相關文章: