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入门(一):概述


    分享到:


    相關文章: