DeepLearning4J:Java和Scala的深度学习开源库

Deeplearning4j(以下简称DL4J)是Java和Scala环境下的开源、分布式深度学习项目,DL4J集成了Hadoop and Spark,设计用于运行在分布式GPU和CPU上的商业环境。它由总部位于旧金山的商业智能和企业软件公司Skymind牵头开发。团队成员包括数据专家、深度学习专家、Java系统工程师和具有一定感知力的机器人。O’Reilly出版社为DL4J出版的书,已经可以在亚马逊买到。

大家对大数据都有所耳闻。通过发布开源深度学习工具,我们希望能将商业带入智能数据的时代。这也是为什么我们选择在Java环境实现这一框架。通过使用这些工具,数据专家可以认识到可扩缩深度学习算法的力量。这些算法早已在谷歌、脸书、微软、百度和网飞等设有专职深度学习团队的公司得到应用。

通过深度学习算法,可以实现无监督学习,让数据专家免于特征提取过程中的大量枯燥工作,从而把更多精力放在更有意思的任务之上。更广泛说来,我们认为这些算法可以帮助建设更为安全、智能、透明和高效的社会环境。

在定型深度学习网络的过程中,有许多可供调节的参数。我们已尽可能对这些参数进行解释,从而使Deeplearning4j能够成为在Hadoop和其他文件系统环境内Java、Scala及Clojure编程人员的DIY工具。如果您需要目前所提供教程之外的支持和定制化服务,请与Skymind取得联系。

ND4J是Java科学运算引擎,用来驱动矩阵操作。(请在此参见其Github库。)ND4S是其Scala封装程序;Deeplearning4s是在DL4J上的Scala封装程序。

Deeplearning4j已得到《连线》、《GigaOM》、《商业周刊》、《Venturebeat》、《华尔街日报》、《Fusion》和《Java杂志》的报道。DL4J工作坊目前在旧金山通过GalvanizeU进行提供。

快速入门

1.在命令行中输入:

|

1

2

3

|

$  git clone  https://github.com/deeplearning4j/dl4j-examples.git

$  cd dl4j-examples/

$  mvn clean install

|

2.打开IntelliJ,选择“导入项目”。然后选择“dl4j-examples”主目录。

DeepLearning4J:Java和Scala的深度学习开源库_第1张图片
Install_IntJ_1

3.选择“从外部模型导入项目”,确保已选中Maven。

DeepLearning4J:Java和Scala的深度学习开源库_第2张图片
Install_IntJ_2

4.继续按向导选项操作。选中以jdk开头的SDK。(可能需要点击加号才能看到相关选项……)随后点“完成”。稍等片刻,让IntelliJ下载所有的依赖项。右下方会显示进度条。

5.在左边的树形目录中选择一个示例。

DeepLearning4J:Java和Scala的深度学习开源库_第3张图片
Install_IntJ_3

6.右击文件,运行。

在您自己的项目中使用DL4J:配置POM.xml文件

若要在您自己的项目中运行DL4J,我们强烈推荐Java用户使用Maven,Scala用户使用SBT等工具。基本的依赖项及其版本如下所示。其中包括:

  • deeplearning4j-core,包含神经网络实现方法
  • nd4j-native,ND4J库的CPU版本,驱动DL4J
  • canova-api – Canova是我们的数据向量化和加载库

每个Maven项目都有一个POM文件。运行示例时,POM文件的内容应当如此处所示。

在IntelliJ中,你需要选择将要运行的第一个Deeplearning4j示例。我们建议选择MLPLinearClassifier,在我们的用户界面中几乎能立即看到该网络将数据分类为两组。文件可以在Github上找到。

右击示例,在下拉菜单中选择绿色按钮即可运行。你会在IntelliJ底部的窗口中看到一系列分值。最右边的数字是网络分类的误差得分。如果网络在进行学习,该数字就会随着处理批次的增加而减少。最后,该窗口会告诉你神经网络模型最终的准确度。

DeepLearning4J:Java和Scala的深度学习开源库_第4张图片
mlp_classifier_results

另一个窗口中的图像会显示多层感知器(MLP)对示例数据的分类结果,如下图所示:

DeepLearning4J:Java和Scala的深度学习开源库_第5张图片
mlp_classifier_viz

祝贺您!您已经用Deeplearning4j成功定型了第一个神经网络……

其他资源

  • DL4J线上交流群是有关DL4J的主要交流渠道。大多数人都在此出没。
  • 调试帮助面向刚开始接触神经网络的用户。初学者请访问这个交流群!
  • 早期用户交流群面向那些帮助我们检查并改进新版本的用户。注意:这个群供经验更丰富的用户交流。
  • 深度神经网络简介
  • 快速入门指南
  • 初学者学习计划
  • 完全安装指南
  • DL4J文档
  • Maven Central上的Deeplearning4j工件
  • Maven Central上的ND4J工件
  • Maven Central上的Canova工件

官方网站:http://deeplearning4j.org/
开源地址:https://github.com/deeplearning4j/deeplearning4j

DL4J在GitHub上的项目

与其他深度学习框架相比较

与其他深度学习框架相比,Deeplearning4j在API语言、宗旨和集成性方面独具特色。DL4J是基于JVM、聚焦行业应用且提供商业支持的“分布式深度学习框架”,能在合理的时间内解决各类涉及大量数据的问题。DL4J与Kafka、Hadoop和Spark集成,可使用任意数量的GPU或CPU运行,而且发生任何问题都可以联系服务热线。

DL4J是一种跨平台的便携式学习库,并非专门针对AWS、Azure或谷歌云等任何一种特定的云端服务而优化。论速度,DL4J用多GPU运行非平凡图像处理任务时的性能可媲美Caffe,优于TensorFlow和Torch。如需对Deeplearning4j运行基准测试,请参阅此页的指南,通过调整JVM的堆空间、垃圾回收算法、内存管理以及DL4J的ETL数据加工管道来优化DL4J的性能。Deeplearning4j拥有Java、Scala和Python API(所用的Python API为Keras)。

DeepLearning4J:Java和Scala的深度学习开源库_第6张图片
image

Skymind有一个非常活跃的Twitter帐户,他们发布新的科学论文、示例和教程。非常推荐去看看。

你可能感兴趣的:(DeepLearning4J:Java和Scala的深度学习开源库)