【问题标题】:Preparing data for deeplearning4j为 deeplearning4j 准备数据
【发布时间】:2021-04-13 20:58:43
【问题描述】:

我想预测具有以下形式的数据分类:

分类器;文字描述

例如

  • 汽车;有 4 个轮子的车辆
  • 房子;有屋顶的建筑物
  • 老鼠;吓坏我妈妈的灰色动物

我从以下开始,但这让我遇到了数字格式异常

    RecordReader recordReader = new CSVRecordReader(1, ';');
    recordReader.initialize(new FileSplit(new File(csvFilePath)));

    DataSetIterator iterator = new RecordReaderDataSetIterator(recordReader,batchSize,labelIndex,numClasses);
    return iterator.next();

显然我需要先准备这些数据以创建数字表示。 DL4j 样本建立在已经准备好的数据之上。 是否有以与我的设置类似的设置开头的示例?

【问题讨论】:

    标签: deeplearning4j


    【解决方案1】:

    您通常会为此使用我们的 ETL 库 datavec。我不确定您在看哪里,但是这些示例中有许多以 csv、图像和文本形式预处理数据的示例。这取决于你在做什么。

    对于 CSV,您找到了正确的起点。这将从 CSV 目录加载。 在我们的案例中,我引用了其中的一个示例:

     int numLinesToSkip = 0;
     char delimiter = ',';
      String localDataPath = DownloaderUtility.IRISDATA.Download();
    RecordReader recordReader = new CSVRecordReader(numLinesToSkip,delimiter);
    recordReader.initialize(new FileSplit(new File(localDataPath,"iris.txt")));
    int labelIndex = 4;
    int numClasses = 3;
    DataSetIterator iteratorA = new RecordReaderDataSetIterator(recordReaderA,10,labelIndex,numClasses);
           
    

    这将设置一个用于解析数据的记录阅读器,您将其初始化为将该阅读器指向特定的文件或目录(数据可以是任何东西)

    如果您想要更复杂的东西,您通常要么自己手动编码管道,要么使用 datavec 的转换过程。

    这真的取决于你的用例。

    至于你的 NumberFormatException 的具体问题,我真的不知道该说什么。

    正如这里的任何人所要求的,我需要完整的上下文(堆栈跟踪、完整的错误消息而不是部分描述......)

    继续我所拥有的,可能是因为你在折腾文字或不是数字的东西。所有机器学习都涉及将所有内容(不管是什么)转换为数字。我不想在一篇文章中完成整个 ML 课程,但如果你能更具体一些,我可以给你一些提示,告诉你你需要为你的特定案例做些什么。

    【讨论】:

      猜你喜欢
      • 2021-03-24
      • 1970-01-01
      • 1970-01-01
      • 2015-04-07
      • 1970-01-01
      • 2017-04-07
      • 2019-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多