0

我正在尝试Classifier在 Scala 中编写一个简单的示例,并查看创建实例(使用构建器)然后作为参数传递给类构造函数的dl4j示例。但是,查看源代码,并没有任何构造函数以 a为例。看起来这些示例不是最新的。有谁知道如何在最后一个版本中做到这一点?NeuralNetConfigurationMultiLayerNetworkMultiLayerNetworkNeuralNetConfigurationdl4j

我已经设法找到解决方法,但我不确定这是正确的方法:

val conf = new NeuralNetConfiguration.Builder()
   .seed(seed) 
   .iterations(iterations) 
   .learningRate(1e-6f) 
   .optimizationAlgo(OptimizationAlgorithm.CONJUGATE_GRADIENT) 
   .l1(1e-1).regularization(true).l2(2e-4)
   .useDropConnect(true)
   .layer(hiddenLayer)
   .layer(outputLayer)
   .build()
val confs: util.List[NeuralNetConfiguration] = new util.LinkedList();
confs.add(conf)
val builder = new MultiLayerConfiguration.Builder()
builder.setConfs(confs)
val model: MultiLayerNetwork = new MultiLayerNetwork(builder.build())
4

2 回答 2

1

MultiLayerNetwork类将类的实例MultiLayerConfiguration作为参数。你可以看看javadocsMultiLayerConfiguration您可以按如下方式创建实例;

MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder();

实际上,当您调用getConfof时MultiLayerConfiguration,它会返回NeuralNetConfiguration。当您查看文档时,您会看到MultiLayerConfiguration.Builderis 的嵌套类MultiLayerConfigurationMultiLayerConfiguration.Builderis的子类NeuralNetConfiguration.ListBuilder。有关更多信息,您可以阅读内容。

编辑我

在 Scala 中使用 DL4J 时,只需删除类型符号即可。例如;

val conf = new NeuralNetConfiguration.Builder()
val multiLayerNetwork = new MultiLayerNetwork(conf)

这应该有效。有什么问题请私信我,希望对你有帮助!

于 2018-01-15T14:24:52.617 回答
0

您需要更仔细地遵循示例。NeuralNetConfiguration() 是您的基本参数,然后列出您的层(仔细查看任何示例)并像这样完成构建器。这将为您提供 MultiLayerConfiguration。

于 2018-01-16T17:20:37.613 回答