【问题标题】:dl4j MultiLayerNetwork does not have a constructor that take NeuralNetConfiguration (version 0.9.1)dl4j MultiLayerNetwork 没有采用 NeuralNetConfiguration 的构造函数(0.9.1 版)
【发布时间】:2018-01-15 11:54:54
【问题描述】:

我正在尝试在 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())

【问题讨论】:

    标签: scala deeplearning4j dl4j


    【解决方案1】:

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

    MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder();
    

    实际上,当您调用MultiLayerConfigurationgetConf 时,它会返回NeuralNetConfiguration。查看文档时,您会看到MultiLayerConfiguration.BuilderMultiLayerConfiguration 的嵌套类,MultiLayerConfiguration.Builder 的子类是NeuralNetConfiguration.ListBuilder。更多信息,您可以阅读this

    编辑我

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

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

    这应该可行。有任何问题请私信我,希望对你有帮助!

    【讨论】:

    • 如果我做 val conf: MultiLayerConfiguration = new NeuralNetConfiguration.Builder() 那么我得到一个:类型不匹配;找到:org.deeplearning4j.nn.conf.NeuralNetConfiguration.Builder 需要:org.deeplearning4j.nn.conf.MultiLayerConfiguration 我将编辑我的问题以展示我的工作。
    • @PedroAlipio,好的!当您进行更新时,我会检查一下。
    【解决方案2】:

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

    【讨论】:

    • 我明白了。我可以使用 .list(hiddenLayer, outputLayer) 来解决这个问题。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 2011-10-25
    相关资源
    最近更新 更多