我正在尝试测试多层网络的几种组合,但网络配置生成器不允许在构建后添加或删除层。
如果有人能给我提示,提前致谢。
答案 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);