java - ML 和 DL4J 阶段示例

标签 java machine-learning deep-learning

我有一个大的 S3 桶,里面装满了 4 种不同类型动物的照片。我对 ML 的尝试将是看看我是否能成功获得 Deep Learning 4 Java (DL4J)向其展示这 4 个物种之一的一张新的任意照片,并让它一致、正确地猜测它是哪种动物。

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

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

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

所有这些都是为了问:我对 ML 和 DL4J 基本方法论的理解是否正确,或者我是否有任何误导?

最佳答案

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

这更像是一种集成游戏,而不是“它能做什么吗?”

DL4j可以与kafka/spark流集成并进行在线/小批量学习。

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

我唯一的建议是确保您有相同的数据管道用于训练和测试。

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

对于小批量学习,如果您正在进行小批量/在线学习,请确保您有 minibatch(true)(默认);如果您一次在整个数据集上进行训练,请确保您有 minibatch(false)。

我还建议使用 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 ) 或类似的东西来保存数据周围的全局统计信息。不过,大部分数据管道将取决于您用于构建数据管道的库。

我假设您希望以某种方式标准化您的数据。

关于java - ML 和 DL4J 阶段示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36019246/

相关文章:

java - 解析后日期值无效

java - 在三维空间中找到彼此最近的两个点

java - 线程、对象状态

java - 如何使用 db4o 保存和加载列表

python - 将 HashingVectorizer 的结果附加到 HashingVectorizer 的先前结果的末尾

python - 在 TensorFlow Estimator API 中设置分段学习率

python - TensorFlow 错误 : ValueError ("Shapes %s and %s are incompatible" % (self, 其他))

python - 如何在词嵌入模型中添加 OOV 术语

machine-learning - 在 TensorFlow 的 SKFlow 模型训练中应用自定义成本函数

python - Keras python 中的 k 折交叉验证