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