DL4j
这是运行 DL4J 示例和开始您自己的项目所需的一切。
我们建议您加入我们的社区论坛。
您可以在那里请求帮助并提供反馈,但请在提出我们在下面回答的问题之前使用本指南。
如果您不熟悉深度学习,我们为初学者提供了路线图,其中包含课程、阅读材料和其他资源的链接。
我们目前正在重新编写入门指南。
如果您发现无法按照此处进行操作,请查看 Konduit 博客,因为它包含一些来自社区的入门指南。
代码的味道
Deeplearning4j 是一种特定领域的语言,用于配置由多层组成的深度神经网络。
一切都从 MultiLayerConfiguration 开始,它组织了这些层及其超参数。
超参数是决定神经网络如何学习的变量。
它们包括更新模型权重的次数、如何初始化这些权重、将哪个激活函数附加到节点、使用哪种优化算法以及模型应该学习多快。
这是一种配置的样子:
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder()
.weightInit(WeightInit.XAVIER)
.activation(Activation.RELU)
.optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT)
.updater(new Sgd(0.05))
// ... other hyperparameters
.list()
.backprop(true)
.build();
使用 Deeplearning4j,您可以通过在 NeuralNetConfiguration.Builder() 上调用 layer 来添加一个层,指定它的层顺序(下面的零索引层是输入层)、输入和输出节点的数量、nIn 和 nOut ,以及类型:DenseLayer。
.layer(0, new DenseLayer.Builder().nIn(784).nOut(250).build())
配置好网络后,您可以使用 model.fit
训练模型。
在您自己的项目中使用 DL4J:配置 POM.xml 文件
要在您自己的项目中运行 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 训练了您的第一个神经网络。
参考资料
https://deeplearning4j.konduit.ai/deeplearning4j/tutorials/quick-start