ML和DL4J阶段示例

时间:2016-03-15 18:26:47

标签: java machine-learning deep-learning

我有一个装满4种不同动物照片的大型S3水桶。我进军ML的目的是看看我是否能够成功地Deep Learning 4 Java (DL4J)显示这4个物种之一的新任意照片,并始终如一地正确猜测它是哪种动物。

我的理解是我必须首先执行“训练阶段”,这有效地构建了一个(内存中)神经网络,该网络由节点和权重派生而来这个S3桶(输入数据)和我自己的DL4J库的编码和使用。

一旦经过培训(意味着,一旦我建立了内存神经网络),那么我的理解就是我可以输入零或更多“测试阶段 “我将一个新图像作为输入,让程序决定它认为图像是什么类型的动物,然后手动将输出标记为正确(程序猜对了)或不正确w /更正(程序猜到)错了,哦顺便说一下, 是正确的答案。我的理解是这些测试阶段应该有助于调整算法并最大限度地减少错误。

最后,我的理解然后可以在实时“生产阶段”中使用该库,其中程序只是响应图像作为输入和做出决策至于它认为它们是什么。

这一切要问:我是否理解ML和DL4J的基本方法修正,或者我是否误导了?

1 个答案:

答案 0 :(得分:1)

培训:这是任何框架。你也可以使用基于java的SerializationUtils来保存神经网络,或者在新版本中我们也有一个ModelSerializer。

这更像是一种集成游戏,而不是“它可以做x吗?”

DL4j可以与kafka / spark流整合,并进行在线/小批量学习。

神经网络可嵌入生产环境中。

我唯一的建议是确保您拥有相同的数据管道进行培训和测试。

这主要是为了确保您所训练的数据与测试数据的一致性。

对于迷你批量学习,如果您正在进行小批量/在线学习或小批量(假),如果您正在一次训练整个数据集,那么确保您有minibatch(true)(默认)。

我还建议使用StandardScalar(https://github.com/deeplearning4j/nd4j/blob/master/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/dataset/api/iterator/StandardScaler.java)或类似内容来持久保存数据周围的全局统计信息。大部分数据管道将取决于您用于构建数据管道的库。

我认为你会想以某种方式规范化你的数据。