这是代码,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/