dl4j MultiLayerNetwork没有采用NeuralNetConfiguration(版本0.9.1)的构造函数

时间:2018-01-15 11:54:54

标签: scala deeplearning4j dl4j

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

我设法找到合适的方法,但我不确定这是否正确:

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())

2 个答案:

答案 0 :(得分:1)

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

MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder();

实际上,当您致电getConf MultiLayerConfiguration时,它会返回NeuralNetConfiguration。查看文档时,您会发现MultiLayerConfiguration.BuilderMultiLayerConfiguration的嵌套类,MultiLayerConfiguration.Builder的子类是NeuralNetConfiguration.ListBuilder。有关详细信息,请参阅this

编辑我

在Scala中使用DL4J时,只需删除类型表示法。例如;

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

这应该有效。如有任何问题,请告诉我,我希望它有所帮助!

答案 1 :(得分:0)

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