DeepLearning4J 如何将层动态添加到多层网络

时间:2021-03-28 19:55:55

标签: neural-network deeplearning4j

我正在尝试测试多层网络的几种组合,但网络配置生成器不允许在构建后添加或删除层。

如果有人能给我提示,提前致谢。

1 个答案:

答案 0 :(得分:0)

我明白了!

这成功了 .list(layers.toArray(new DenseLayer[layers.size()]))

System.out.println("CREATING NETWORK.");
        List<Integer> hiddenLayers = NetworkSizeCalculator.getNetwork(nc.networkStructure, d.inputs[0].length, d.inputs.length);
        List<DenseLayer> layers=new ArrayList<>();
        for(int i=0;i<hiddenLayers.size();i++){
            layers.add(new DenseLayer.Builder()
                    .nIn(hiddenLayers.get(i))
                    .nOut(hiddenLayers.get(i))
                    .weightInit(WeightInit.XAVIER)
                    .activation((Activation) nc.hiddenActivationType)
                    .build());
        }

        MultiLayerConfiguration configuration = new NeuralNetConfiguration.Builder()
                .seed(randomSeed)
                .updater(t.getOptimizer())
                .activation(nc.hiddenActivationType)
                .weightInit(WeightInit.XAVIER)
                .list(layers.toArray(new DenseLayer[layers.size()]))
                .layer(hiddenLayers.size(),new OutputLayer.Builder()
                        .nIn(d.inputs[0].length)
                        .nOut(d.outputs[0].length)
                        .weightInit(WeightInit.XAVIER)
                        .activation((Activation) nc.outputActivationType)
                        .lossFunction(LossFunctions.LossFunction.MSE)
                        .build()).build();

        MultiLayerNetwork network = new MultiLayerNetwork(configuration);
相关问题