Deeplearning4j - 分布式深度学习库


Apache
跨平台
Java

软件简介

Deeplearning4j(简称DL4J)是为Java和Scala编写的首个商业级开源分布式深度学习库。DL4J与Hadoop和Spark集成,为商业环境(而非研究工具目的)所设计。Skymind是DL4J的商业支持机构。

Deeplearning4j技术先进,以即插即用为目标,通过更多预设的使用,避免太多配置,让非研究人员也能够进行快速的原型制作。DL4J同时可以规模化定制。DL4J遵循Apache
2.0许可协议,一切以其为基础的衍生作品均属于衍生作品的作者。

神经网络使用情景

  • 人脸/图像识别

  • 语音搜索

  • 文本到语音(转录)

  • 垃圾邮件筛选(异常情况探测)

  • 欺诈探测

  • 推荐系统(客户关系管理、广告技术、避免用户流失)

  • 回归分析

为何选择Deeplearning4j?

  • 功能多样的N维数组类,为Java和Scala设计

  • 与GPU集合

  • 可在Hadoop、Spark上实现扩缩

  • Canova:机器学习库的通用向量化工具

  • ND4J:线性代数库,较Numpy快一倍

Deeplearning4j包括了分布式、多线程的深度学习框架,以及普通的单线程深度学习框架。定型过程以集群进行,也就是说,Deeplearning4j可以快速处理大量数据。神经网络可通过[迭代化简]平行定型,与
JavaScala
Clojure
均兼容。Deeplearning4j在开放堆栈中作为模块组件的功能,使之成为首个为微服务架构打造的深度学习框架。

DL4J神经网络

深度神经网络能够实现前所未有的准确度。对神经网络的简介请参见概览页。简而言之,Deeplearning4j能够让你从各类浅层网络(其中每一层在英文中被称为layer)出发,设计深层神经网络。这一灵活性使用户可以根据所需,在分布式、生产级、能够在分布式CPU或GPU的基础上与Spark和Hadoop协同工作的框架内,整合受限玻尔兹曼机、其他自动编码器、卷积网络或递归网络。

此处为我们已经建立的各个库及其在系统整体中的所处位置:

在定型深度学习网络的过程中,有许多可供调节的参数。我们已尽可能对这些参数进行解释,从而使Deeplearning4j能够成为Java、ScalaClojure编程人员的DIY工具。