DL4J入門(一):概述

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

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

功能介紹

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

兼容以下分佈式框架:

Cloudera CDHHortonworks HDPNVIDIA DGXsHadoopHadoop YarnApache SparkApache FlinkApache StormCanonical Reacive Platform

支持構建以下神經網絡:

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

其他特性:

支持分佈式GPUs可通過Keras導入Python模型提供豐富的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/Arbiterarbiter-core:Aribter-core用網格搜索等算法來搜索超參數空間。它會提供一個GUI界面。arbiter-deeplearning4j:Arbiter可以同DL4J模型互動。在進行模型搜索時,您需要能運行模型。這樣可以對模型進行試點,進而找出最佳的模型。

其他組件介紹

Keras Model Import(Keras模型導入)幫助用戶將已定型的Python和Keras模型導入DeepLearning4J和Java環境。參考https://deeplearning4j.org/cn/index.html#modelimportDL4J-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