【问题标题】:Deeplearning4j: Generate random INDArray(s) as input for a MultiLayerNetworkDeeplearning4j:生成随机 INDArray(s) 作为 MultiLayerNetwork 的输入
【发布时间】:2021-05-20 21:36:34
【问题描述】:
我正在从事一个项目,我打算对 MultiLayerNetworks 进行一些性能分析。正如标题所说,我打算创建一个随机的 INDArray 输入和任意大小的标签,将用作 arbitrary MultiLayerNetwork 的(训练-)输入。更准确地说,我想生成适合任何给定多层网络的输入。我尝试使用Nd4j.rand 和Nd4j.zeros 为网络生成输入和标签,但是据我了解,不同的层有不同的形状要求。非常感谢任何帮助/建议。提前致谢!
注意:我对数据本身或结果不感兴趣:在我的情况下,生成随机数据就足够了。
【问题讨论】:
标签:
java
neural-network
deeplearning4j
nd4j
【解决方案1】:
您正在寻找的并不是真正的“东西”。您将不得不列举不同的架构。虽然您可以根据形状确定有效输入,但这些仍然是您必须自己创建的 ndarray。你的赌注是限制问题并迭代一组确定的输入大小。这就是我们在 dl4j 本身中创建测试用例的方式。
注意:在超参数搜索方面有一些“更高级”的方法,但即便如此,您仍然只是生成随机候选者并枚举一组输入。对于 just 2d 密集网络,您可以根据输入的数量等于前一层的输出数量来确定什么是有效的。
一旦你超越了这一点,你就会开始弄清楚哪些层的组合是有效的 + 能够确定你想要网络的深度。