【问题标题】:Predictions using Convolutional Neural Networks and DL4J使用卷积神经网络和 DL4J 进行预测
【发布时间】:2020-05-26 18:28:45
【问题描述】:

这是我第一次使用 DL4J(Java 深度学习),也是我的第一个卷积神经网络。我的目标是使用卷积神经网络给我一些关于图像的预测值。我自己收集并标记了我的图像。标签或预期输出由 0 和 1 之间的两个数字组成(我只是将它们写在文件名中,例如 0.01x0.87.jpg)。 现在我找不到任何方法来使用 DL4J 使用的 DataSetIterator 类,以便我也可以设置我的标签值。

有没有一种简单的方法告诉 DL4J 我想训练我的网络来识别图像 0.01x0.01.jpg 应该吐出值 0.01 和 0.01?

【问题讨论】:

    标签: neural-network dl4j


    【解决方案1】:

    您想要做的通常称为回归。与您希望输出 0 或 1 的分类相比,在回归中,任何值都可以作为目标。

    在您的情况下,您可能希望使用使用 sigmoid(强制您的值介于 0 和 1 之间)或身份(保持值不变,即允许它们0 到 1 范围之外)激活函数。

    由于您要尝试预测两个值,因此您还必须定义您正在使用两个输出。

    对于您的模型架构来说,就这么多。

    对于数据加载,您可以使用ImageRecordReader,也可以传递您自己的PathMultiLabelGenerator。当你实现 PathMultiLabelGenerator 接口时,你会得到图像的完整路径作为一个字符串,你可以用它做任何你想做的事情,例如删除文件结尾,在x 上拆分并将你的文件名解析为一个列表的DoubleWritableDoubleWritable 只是 double 的一个简单包装类,因此创建它就像通过将实际值传递给构造函数来实例化它一样简单。

    要创建数据集迭代器,您现在可以按照RecordReaderDataSetIterator 上的文档进行操作。

    【讨论】:

      猜你喜欢
      • 2016-09-03
      • 2015-04-15
      • 2021-03-30
      • 2017-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      • 2017-04-19
      相关资源
      最近更新 更多