开始使用

这是运行 DL4J 示例和开始您自己的项目所需的一切。

我们建议您加入我们的社区论坛。

您可以在那里请求帮助并提供反馈,但请在提出我们在下面回答的问题之前使用本指南。

如果您不熟悉深度学习,我们为初学者提供了路线图,其中包含课程、阅读材料和其他资源的链接。

如果您只是想开始,请考虑阅读我们的核心工作流程指南。

快速概览

Deeplearning4j 最初是一种用于配置深度神经网络的特定领域语言,后来演变成一套工具,开发人员可以使用它来完成从 Java 中的训练模型到部署模型到生产的所有工作。

用例包括:

  1. 数值计算。 请参阅:https://github.com/eclipse/deeplearning4j-examples/tree/master/nd4j-ndarray-examples

  2. 使用类似 tensorflow/pytorch 的界面定义和训练模型。 请参阅:https://github.com/eclipse/deeplearning4j-examples/tree/master/samediff-examples

  3. 模型导入和部署。 请参阅:https://github.com/eclipse/deeplearning4j-examples/tree/master/tensorflow-keras-import-examples

  4. 在 spark 上运行模型。 请参阅:https://github.com/eclipse/deeplearning4j-examples/tree/master/dl4j-distributed-training-examples

  5. 一个用于运行数学代码的小型自包含库。 见:https://github.com/eclipse/deeplearning4j/tree/master/libnd4j

其他用例也可用,请随时查看我们的更多示例

先决条件

Java(开发者版本)1.8 或更高版本(仅支持 64 位版本)

Apache Maven(自动构建和依赖管理器)

IntelliJ IDEA 或 Eclipse

GIT

ps: 这4个我相信 java 开发者都很熟悉,此处不做展开。

您应该安装这些以使用本快速入门指南。

DL4J 面向熟悉生产部署、IDE 和自动化构建工具的专业 Java 开发人员。 如果您已经有这些经验,那么使用 DL4J 将是最容易的。

如果您是 Java 新手或不熟悉这些工具,请阅读以下详细信息以获取安装和设置帮助。

否则,请跳至 DL4J 示例。

快速开始模板

现在您已经了解了如何运行不同的示例,我们为您提供了一个模板,其中包含一个带有简单评估代码的基本 MNIST 训练器。

快速入门模板位于 https://github.com/eclipse/deeplearning4j-examples/tree/master/mvn-project-template。

要使用模板:

从示例中复制standalone-sample-project 并将其命名为您的项目名称。

将文件夹导入 IntelliJ。

开始编码!

获取代码

git clone

下载代码到本地。

git clone https://github.com/eclipse/deeplearning4j-examples.git

打开

使用 idea 打开项目。

虽然找一个例子运行。

ps: 官方的 demo 文档太大太重了。不如来一个 hello word 入门简单。

在你的项目中使用 dl4j

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

deeplearning4j-core,包含神经网络实现

nd4j-native-platform,为 DL4J 提供支持的 ND4J 库的 CPU 版本

datavec-api - Datavec 是我们的库矢量化和加载数据

每个 Maven 项目都有一个 POM 文件。以下是运行示例时 POM 文件的显示方式。

在 IntelliJ 中,您需要选择要运行的第一个 Deeplearning4j 示例。我们建议使用 MLPClassifierLinear,因为您几乎会立即在我们的 UI 中看到网络对两组数据进行分类。 Github 上的文件可以在这里找到。

要运行该示例,请右键单击它并选择下拉菜单中的绿色按钮。您将在 IntelliJ 的底部窗口中看到一系列分数。最右边的数字是网络分类的错误分数。如果您的网络正在学习,那么随着时间的推移,这个数字会随着它处理的每个批次而减少。最后,这个窗口会告诉你你的神经网络模型变得多么准确:

在另一个窗口中,将出现一个图表,向您展示多层感知器 (MLP) 如何对示例中的数据进行分类。它看起来像这样:

恭喜!您刚刚使用 Deeplearning4j 训练了您的第一个神经网络。

下一步

加入我们在 community.konduit.ai 上的社区论坛。

阅读深度神经网络简介

查看更详细的综合设置指南。

更多关于 Eclipse Deeplearning4j

Deeplearning4j 是一个框架,可让您从一开始就选择所有可用的东西。

我们不是 Tensorflow(具有自动微分功能的低级数值计算库)或 Pytorch。

Deeplearning4j 有几个子项目,可以轻松构建端到端应用程序。

如果您想将模型部署到生产环境,您可能会喜欢我们从 Keras 导入的模型。

Deeplearning4j 有几个子模块。这些范围从可视化 UI 到 Spark 上的分布式培训。有关这些模块的概述,请查看 Github 上的 Deeplearning4j 示例。

要开始使用简单的桌面应用程序,您需要两件事:nd4j 后端和 deeplearning4j-core。有关更多代码,请参阅更简单的示例子模块。

如果你想要一个灵活的深度学习 API,有两种方法可以走。您可以独立使用 nd4j 请参阅我们的 nd4j 示例或计算图 API。

如果您想在 Spark 上进行分布式培训,可以查看我们的 Spark 页面。请记住,我们无法为您设置 Spark。如果您想设置分布式 Spark 和 GPU,这在很大程度上取决于您。

Deeplearning4j 只是在现有 Spark 集群上部署为 JAR 文件。

如果您想要使用 GPU 的 Spark,我们建议使用带有 Mesos 的 Spark。

如果您想在移动设备上部署,您可以查看我们的 Android 页面。

我们为各种硬件架构本地部署优化代码。我们像其他人一样使用基于 C++ 的 for 循环。

为此,请参阅我们的 C++ 框架 libnd4j。

Deeplearning4j 还有两个值得注意的组件:

Arbiter:超参数优化和模型评估

DataVec:用于机器学习数据管道的内置 ETL

Deeplearning4j 旨在成为构建真实应用程序的端到端平台,而不仅仅是具有自动微分功能的张量库。

如果你想要一个带有 autodiff 的张量库,请参阅 ND4J 和 Samediff。 Samediff 仍处于测试阶段,但如果您想贡献,请加入我们的社区论坛。

最后,如果您正在对 Deeplearnin4j 进行基准测试,请考虑加入我们的社区论坛并寻求建议。

Deeplearning4j 拥有所有的旋钮,但有些可能不像 Python 框架那样工作。

参考资料

https://deeplearning4j.konduit.ai/multi-project/tutorials/quickstart