我通過運行下面的代碼得到一個NullPointerException異常:陣列自定義類的顯示NullPointerException異常
主營:
public class NeuralXOR {
public static void main(String[] args) {
double[] inputs = {1.0, 0.0};
NeuralNetwork network = new NeuralNetwork(2, 1, 3, 0.7, 0.9);
}
}
神經網絡類: 公共類NeuralNetwork {
Node[] inputNodes;
Node[] hiddenNodes;
Node[] outputNodes;
Layer[] layers;
int noOfInputNodes;
int noOfOutputNodes;
int noOfLayers = 3;
public NeuralNetwork(int noOfInputNodes, int noOfOutputNodes, int noOfHiddenNodes, double learningRate, double momentum) {
this.outputNodes = new Node[noOfOutputNodes];
for (int i = 0; i < outputNodes.length; i++) {
outputNodes[i] = new Node(i);
}
this.hiddenNodes = new Node[noOfHiddenNodes];
for (int i = 0; i < hiddenNodes.length; i++) {
hiddenNodes[i] = new Node(i);
}
this.inputNodes = new Node[noOfInputNodes];
for (int i = 0; i < hiddenNodes.length; i++) {
hiddenNodes[i] = new Node(i);
}
layers[0] = new Layer(inputNodes);
layers[1] = new Layer(hiddenNodes);
layers[2] = new Layer(outputNodes);
}
public void setInputs(double[] inputs) {
if (inputs.length == this.inputNodes.length) {
System.out.println(inputs.length);
for (int i = 0; i < inputs.length; i++) {
this.inputNodes[i].activation = inputs[i];
}
}
}
public double[] getOutputs() {
double[] outputs = new double[this.outputNodes.length];
for (Node outNode : this.outputNodes) {
outputs[outNode.nodeNumber] = outNode.activation;
}
return outputs;
}
}
類節點{
int nodeNumber;
double sum; // z
double activation; //Output
double deltaNode;
double gradient;
double[] outWeights;
public Node (int nodeNumber) {
this.nodeNumber = nodeNumber;
}
public void setOutWeights(int noOfOutNodes) {
this.outWeights = new double[noOfOutNodes];
for (int i = 0; i < outWeights.length; i++) {
this.outWeights[i] = Math.random();
}
}
public double sigmoid(double x) {
return 1/(1 + Math.pow(Math.E, -x));
}
}
類層{
double layerBias;
Node[] nodes;
public Layer (Node[] nodes) {
this.nodes = nodes;
}
}
在線「層中的錯誤點[0] =新層(inputNodes );」在NeuralNetwork類中。沒有紅色顯示,也沒有任何警告......
我認爲這是一個錯誤,因爲缺乏關於JVM如何工作的知識。 直到現在我已經嘗試將它們的類分離成單獨的文件中的公共類,這沒有幫助(不期待它)。我沒有嘗試過其他任何東西。 有什麼想法? 在此先感謝!
我傻:\是現在,我看到它,它可能解決其他的答案,但我認爲這會有所不同。我會刪除它!謝謝! –