这是代码,sigmoid和dot方法返回2d数组。在sigmoid和点方法中,名为outputs的数组定义为double[][] outputs = new double[size1][size2];,并以return outputs;返回。
代码中的此部分返回错误“变量输出可能尚未初始化”,这是由这段代码引起的; System.out.println("Outputs after training are: " + Arrays.toString(outputs));

double[][] outputs;
for(int i = 0; i < 1; i++){
    inputLayer = trainingInputs;
    outputs = sigmoid(dot(inputLayer, synapticWeights));
}
System.out.println("Outputs after training are: " + Arrays.toString(outputs));


我想摆脱错误,以便可以将数组outputs打印到控制台中。

最佳答案

您已经声明了一个变量输出,它可能会在for循环中被初始化。在声明时,应使用null对其进行初始化。您的代码应如下所示。下面的代码段:

double[][] outputs = null;
for(int i = 0; i < 1; i++){
  inputLayer = trainingInputs;
  outputs = sigmoid(dot(inputLayer, synapticWeights));
}
System.out.println("Outputs after training are: " + Arrays.toString(outputs));

关于java - 如何在Java中将返回的数组重新分配给预先存在的数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58887585/

10-12 04:33