我有一个大的S3桶装满了4种不同类型动物的照片。我对ML的研究将是看我是否能成功地让深度学习4 Java (DL4J)获得一张这4种动物中任意一种的新照片,并让它一致、正确地猜出它是哪种动物。
我的理解是,我首先必须执行一个“训练阶段”,它有效地构建了一个(内存中的)神经网络,该神经网络由来自这个S3桶(输入数据)和我自己的DL4J库编码和使用的节点和权重组成。
一旦经过训练(意思是,一旦我建立了记忆中的神经网络),那么我的理解是,我可以输入零或多个“测试阶段”,其中我给出一个新的图像作为输入,让程序决定它认为图像是什么类型的动物,然后手动标记输出为正确的(程序猜对了)或不正确的w/校正(程序猜错了,顺便说一下,正确的答案也是如此)。我的理解是,这些测试阶段应该有助于调整算法和最小化错误。
最后,我的理解是,这个库可以在一个活的“生产阶段”中使用,在这个阶段,程序只是将图像作为输入进行响应,并对其认为它们是什么做出决定。
所有这一切都要问:我对ML和DL4J的基本方法论的理解是正确的,还是有任何误导?
发布于 2016-03-15 18:36:15
培训:这是任何框架。您还可以使用基于java的SerializationUtils或更新版本中的ModelSerializer来持久化神经网络。
这更像是一个集成游戏,而不是“它能做x吗?”
DL4j可以集成卡夫卡/火花流和在线/迷你批量学习。
神经网络是嵌入在生产环境中的。
我在这里的唯一建议是确保您有相同的数据管道用于培训和测试。
这主要是为了确保您正在培训的数据与测试数据的一致性。
此外,对于小型批次学习,如果您正在进行小批/在线学习,或者如果您同时在整个数据集上进行培训,请确保您有微型批处理(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)或类似的方法来保持数据周围的全局统计信息。不过,大部分数据管道将取决于用于构建数据管道的库。
不过,我假设您希望以某种方式将您的数据规范化。
https://stackoverflow.com/questions/36019246
复制相似问题