【发布时间】:2021-04-26 11:08:26
【问题描述】:
public void playFullGame(MultiLayerNetwork m1, MultiLayerNetwork m2) {
boolean player = false;
while (!this.isOver) {
float[] f = Main.rowsToInput(this.rows);
System.out.println(f.length);// prints 42
INDArray input = Nd4j.create(f);
this.addChip(Main.getHighestOutput(player ? m1.output(input) : m2.output(input)), player);
player = !player;
}
}
我使用 INDArray input = Nd4j.create(f); 创建 INDArray,但这个 m1.output(input) 引发以下异常:
Exception in thread "AWT-EventQueue-0" org.deeplearning4j.exception.DL4JInvalidInputException: Input size (63 columns; shape = [1, 63]) is invalid: does not match layer input size (layer # inputs = 42) (layer name: layer2, layer index: 2, layer type: OutputLayer)
我不明白为什么创建的 INDArray 是二维的以及 63 来自哪里..
编辑: 多层网络配置:
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder()
.seed(randSeed).optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT)
.updater(new Nesterovs(0.1, 0.9)).list()
.layer(new DenseLayer.Builder().nIn(numRows * numColums).nOut(63).activation(Activation.RELU)
.weightInit(WeightInit.XAVIER).build())
.layer(new DenseLayer.Builder().nIn(63).nOut(63).activation(Activation.RELU)
.weightInit(WeightInit.XAVIER).build())
.layer(new OutputLayer.Builder(LossFunction.NEGATIVELOGLIKELIHOOD).nIn(numRows * numColums).nOut(7)
.activation(Activation.SOFTMAX).weightInit(WeightInit.XAVIER).build())
.build();
【问题讨论】:
-
您好,我们需要更多信息来帮助您。你能给出神经网络架构吗?
-
好的,我编辑了我的问题,我希望这是你对建筑的看法
标签: java deeplearning4j