Deeplearning4J:进程失败索引的长度必须与数组rank相同

brandjoebrandjoe 成员职位:7新手
2019年5月编辑 帮助
下面的错误,我试图训练我的想法(?)ConvLSTM人工神经网络。一旦模型的训练达到100%,并且在模型可以应用到测试集之前,错误就会弹出。

流程和部分示例数据附在这篇文章中。示例数据的配置也在附件中(截图)。想想看,我本可以把它作为一个操作符加入到这个过程中……很抱歉。

有什么办法能让我克服这个错误吗?

索引的长度必须与数组的rank长度相同。org.nd4j.linalg.api.shape.Shape.getDouble(Shape.java:510) org.nd4j.linalg.api.ndarray.BaseNDArray.getDouble(BaseNDArray.java:1804) org.nd4j.linalg.api.ndarray.BaseNDArray.getDouble(BaseNDArray.java:4209) com.rapidminer.extension.deeplearning.ioobjects.DeepLearningModel.performPrediction(DeepLearningModel.java:170) com.rapidminer.operator.learner.PredictionModel.apply(PredictionModel.java:116)com.rapidminer.operator.ModelApplier.doWork(ModelApplier.java:134) com.rapidminer.operator.Operator.execute(Operator.java:1013) com.rapidminer.operator.execution.SimpleUnitExecutor.execute(SimpleUnitExecutor.java:77) com.rapidminer.operator.ExecutionUnit$2.run(ExecutionUnit.java:812) com.rapidminer.operator.ExecutionUnit$2.run(ExecutionUnit.java:807) java.security.AccessController。doPrivileged(本地方法)com.rapidminer.operator.ExecutionUnit.execute (ExecutionUnit.java: 807) com.rapidminer.extension.concurrency.operator.process_control.loops.AbstractLoopOperator.doIteration (AbstractLoopOperator.java: 409) com.rapidminer.extension.concurrency.operator.process_control.loops.AbstractLoopOperator.performSynchronizedLoop (AbstractLoopOperator.java: 382) com.rapidminer.extension.concurrency.operator.process_control.loops.AbstractLoopOperator.doWork (AbstractLoopOperator.java: 462)com.rapidminer.operator.Operator.execute(Operator.java:1013) com.rapidminer.operator.execution.SimpleUnitExecutor.execute(SimpleUnitExecutor.java:77) com.rapidminer.operator.ExecutionUnit$2.run(ExecutionUnit.java:812) com.rapidminer.operator.ExecutionUnit$2.run(ExecutionUnit.java:807) java.security.AccessController.doPrivileged(Native Method) com.rapidminer.operator.ExecutionUnit.execute(ExecutionUnit.java:807) com.rapidminer.operator.OperatorChain.doWork(OperatorChain.java:423) com.rapidminer.operator.Operator.execute(Operator.java:1013) com.rapidminer.Process.executeRoot(Process.java:1377) com.rapidminer.Process.execute(Process.java:1318) com.rapidminer.Process.run(Process.java:1291) com.rapidminer.Process.run(Process.java:1177) com.rapidminer.Process.run(Process.java:1130) com.rapidminer.Process.run(Process.java:1125) com.rapidminer.Process.run(Process.java:1115) com.rapidminer.gui.ProcessThread.run(ProcessThread.java:65)

答案

  • varunm1varunm1 主持人,职位:1207年独角兽
    2019年5月编辑
    你好@brandjoe

    我看到问题出现在应用模型操作符,因为数据的输入指标与模型shaoes不匹配。我有点好奇目前的深度学习操作符是否适合构建像您的(CNN+LSTM)这样的混合网络,因为这需要在DL4J中进行细粒度编码。

    @hughesfleming68对深度学习扩展的混合模型有什么想法?

    @pschlunder可以多提些建议。

    谢谢
    问候,
    Varun
    https://www.varunmandalapu.com/

    是安全的。遵循预防措施,保持社交距离

  • hughesfleming68hughesfleming68 成员职位:323独角兽
    2019年5月编辑
    错误来自LSTM层。让我看看能做些什么。说实话,我认为不应该这样做。一个更好的选择是添加第二个conv层+池,如果它需要更复杂。明天我再仔细看看。

    另一个问题是,确实没有足够的数据来证明使用深度学习器是值得的。这是我个人的看法。
    varunm1
  • brandjoebrandjoe 成员职位:7新手
    2019年5月编辑
    @varunm1非常感谢您的插话。同样的,@hughesfleming68当然可以。

    关于你的观察@hughesfleming68你似乎是对的。在仅使用LSTM层进行进一步测试时,我根本无法让LSTM工作。

    关于数据,我的真实数据集有12'700个例子,有15个属性,但结构完全相同。这是敏感数据,但可以私下分享。
    从2017年4月到2019年4月,12’700条线是每日销售,6家店,各3个产品类别。我可以得到更多(约200家商店,约50个产品类别,约4-5年前,每天),但准备数据很困难,因为许多属性必须手动添加。

    我的最终目标有两个方面。声明:“我,使用机器学习/深度学习,…”
    • A.达到某种程度上准确的预期销售(下一时期,如;下周),每个商店,每个产品类别为学习者提供历史销售,天气和每个特定商店的上下文数据
    • B.一旦实现了A,尝试证明删除对特定商店进行分类的重要属性(靠近湖泊(See)或大学(Hochschule),以及天气数据和有关讲座的数据等)对受该属性影响的商店的预测准确性具有可衡量的影响。
    我的历史,为什么我尝试以上:
    1. 我最初选择了随机森林,它非常强调商店本身,因此没有产生适用于包含未见商店的数据的“通用”模型,尽管它们与原始训练数据中包含的商店具有相同的属性。
    2. 然后我使用了梯度增强树,这在一定程度上起了作用,但我不记得为什么我放弃了GBT。
    3. 然后我想做时间序列分析,但我的数据显然不适合,需要认真重组和转换。
    4. 我偶然想到了用人工神经网络/深度学习来解决我的问题;从我的研究阅读博客等。建议使用LSTM,但LSTM单独将表现不佳的这类问题。解决方案是一个组合的ConvLSTM,它应该比任何东西都要好。
    所以这是一个进化的过程,我如何到达我目前正在尝试做的事情。任何意见都是高度赞赏的。
  • hughesfleming68hughesfleming68 成员职位:323独角兽
    @brandjoe,仔细观察,我会从线性模型开始,专注于特征选择。我不认为从一开始就试图用CNN或lstm或两者的某种组合来处理这个问题会得到令人满意的结果。

    问候,

    亚历克斯
    varunm1
  • brandjoebrandjoe 成员职位:7新手
    2019年5月编辑
    谢谢你的评论。
    我理解线性回归的工作方式,我不确定这将服务于我的最终目标。作为一个新手,我接受纠正。

    我选择的乐鱼官网手机版下载产品是酒,香肠和薯片/薯条,面包和饮料/软饮料。
    这是因为当开始项目时我以为前几种与季节性、天气和周末和假日期间的湖泊有关;后者与大学和学期有关,当然与假日有关,但与季节性有关的也较少。

    在我选择的商店中,有2家是“大学”,其中1家也是“湖”,有的是“湖”,有的不是。大城市的公司流动率很高,其他城市自然要低得多。

    当绘制和变换数据时(Excel Pivot Chart),一些假设确实可以很容易地得到证实。但有些似乎不那么明显。

    我希望深度学习能够找出这些因素和差异,这是回归模型永远无法做到的。我错了吗?

    我这样做一方面是为了上大学,另一方面是我老板喜欢的项目。
    如果我的工作证实了这些假设,我的公司将在这方面做一个适当的项目,当然要有真正的数据科学家和规模,并尝试将机器学习/深度学习操作化来进行预测非常短期的销售(如。接下来的2-3天)。但是预测不应该基于历史,我们今天已经可以用标准SAP做到这一点,但是预测应该是基于对整个店铺网络的各种要素投入,减少食品浪费。

    如果今年太阳没有出来,但去年总是这样,太多的订单会在商店里坏掉。看到几公斤的牛柳因为我们的汁液不够好而被扔掉,我的头和心都疼。你还觉得“纯粹的倒退”才是正确的方法吗?
登录注册置评。