dl4j MultiLayerNetwork не имеет конструктора, который принимает NeuralNetConfiguration (версия 0.9.1)
Я пытаюсь написать простую Classifier
пример в Scala и глядя на 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 ответа
Вы должны следовать за примерами ближе. NeuralNetConfiguration() - это ваши базовые параметры, затем вы перечисляете свои слои (посмотрите на любой из примеров) и завершаете построение таким образом. Это даст вам многослойную конфигурацию.
MultiLayerNetwork
класс берет пример MultiLayerConfiguration
класс в качестве параметра. Вы можете взглянуть на Javadocs. Вы можете создать MultiLayerConfiguration
пример следующим образом;
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder();
На самом деле, когда вы звоните getConf
из MultiLayerConfiguration
, это возвращает NeuralNetConfiguration
, Когда вы смотрите на документы, вы видите, что MultiLayerConfiguration.Builder
это вложенный класс MultiLayerConfiguration
и подкласс MultiLayerConfiguration.Builder
является NeuralNetConfiguration.ListBuilder
, Для получения дополнительной информации вы можете прочитать это.
РЕДАКТИРОВАТЬ Я
Когда вы используете DL4J в Scala, просто удалите обозначения типов. Например;
val conf = new NeuralNetConfiguration.Builder()
val multiLayerNetwork = new MultiLayerNetwork(conf)
Это должно работать. Пожалуйста, дайте мне знать по любым вопросам, я надеюсь, что это поможет!