我试图在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())
答案 0 :(得分:1)
MultiLayerNetwork
类将MultiLayerConfiguration
类的实例作为参数。你可以看看javadocs。您可以按如下方式创建MultiLayerConfiguration
实例;
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder();
实际上,当您致电getConf
MultiLayerConfiguration
时,它会返回NeuralNetConfiguration
。查看文档时,您会发现MultiLayerConfiguration.Builder
是MultiLayerConfiguration
的嵌套类,MultiLayerConfiguration.Builder
的子类是NeuralNetConfiguration.ListBuilder
。有关详细信息,请参阅this。
编辑我
在Scala中使用DL4J时,只需删除类型表示法。例如;
val conf = new NeuralNetConfiguration.Builder()
val multiLayerNetwork = new MultiLayerNetwork(conf)
这应该有效。如有任何问题,请告诉我,我希望它有所帮助!
答案 1 :(得分:0)
您需要更贴近地遵循这些示例。 NeuralNetConfiguration()是您的基本参数,然后列出您的图层(仔细查看任何示例)并完成构建器。这将为您提供MultiLayerConfiguration。