首页 > 解决方案 > DeepLearning4J 如何将图层动态添加到多层网络

问题描述

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

如果有人可以给我一个提示,在此先感谢。

标签: neural-networkdeeplearning4j

解决方案


我知道了!

这成功了 .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);

推荐阅读