dl4j MultiLayerNetwork 没有采用 NeuralNetConfiguration 的构造函数(版本 0.9.1)
dl4j MultiLayerNetwork does not have a constructor that take NeuralNetConfiguration (version 0.9.1)
我正在尝试在 Scala 中编写一个简单的 Classifier
示例并查看 dl4j
示例创建一个 NeuralNetConfiguration
实例(使用构建器)然后作为MultiLayerNetwork
class 构造函数的参数。但是查看源码,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())
MultiLayerNetwork
class 将 MultiLayerConfiguration
class 的实例作为参数。你可以看看javadocs。您可以按如下方式创建 MultiLayerConfiguration
实例;
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder();
实际上,当您调用 MultiLayerConfiguration
的 getConf
时,它 returns NeuralNetConfiguration
。当您查看文档时,您会看到 MultiLayerConfiguration.Builder
嵌套在 MultiLayerConfiguration
的 class 中,而 MultiLayerConfiguration.Builder
的 subclass 是 NeuralNetConfiguration.ListBuilder
。更多信息,您可以阅读this.
编辑我
当您在 Scala 中使用 DL4J 时,只需删除类型符号即可。例如;
val conf = new NeuralNetConfiguration.Builder()
val multiLayerNetwork = new MultiLayerNetwork(conf)
这应该有效。如有任何问题,请告诉我,希望对您有所帮助!
您需要仔细阅读这些示例。 NeuralNetConfiguration() 是您的基本参数,然后您列出您的层(仔细查看任何示例)并像这样完成构建器。这将为您提供 MultiLayerConfiguration。
我正在尝试在 Scala 中编写一个简单的 Classifier
示例并查看 dl4j
示例创建一个 NeuralNetConfiguration
实例(使用构建器)然后作为MultiLayerNetwork
class 构造函数的参数。但是查看源码,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())
MultiLayerNetwork
class 将 MultiLayerConfiguration
class 的实例作为参数。你可以看看javadocs。您可以按如下方式创建 MultiLayerConfiguration
实例;
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder();
实际上,当您调用 MultiLayerConfiguration
的 getConf
时,它 returns NeuralNetConfiguration
。当您查看文档时,您会看到 MultiLayerConfiguration.Builder
嵌套在 MultiLayerConfiguration
的 class 中,而 MultiLayerConfiguration.Builder
的 subclass 是 NeuralNetConfiguration.ListBuilder
。更多信息,您可以阅读this.
编辑我
当您在 Scala 中使用 DL4J 时,只需删除类型符号即可。例如;
val conf = new NeuralNetConfiguration.Builder()
val multiLayerNetwork = new MultiLayerNetwork(conf)
这应该有效。如有任何问题,请告诉我,希望对您有所帮助!
您需要仔细阅读这些示例。 NeuralNetConfiguration() 是您的基本参数,然后您列出您的层(仔细查看任何示例)并像这样完成构建器。这将为您提供 MultiLayerConfiguration。