P
Patt1502
Gast
Java:
private static int input_nodes;
private static int hidden_nodes;
private static int output_nodes;
private static int numberOfHiddenLayers;
private static Matrix[] allWeights;
private static Matrix[] bias;
public NeuralNetwork(int input_nodes, int numberOfHiddenLayers, int hidden_nodes, int output_nodes) {
NeuralNetwork.input_nodes = input_nodes;
NeuralNetwork.hidden_nodes = hidden_nodes;
NeuralNetwork.output_nodes = output_nodes;
NeuralNetwork.numberOfHiddenLayers = numberOfHiddenLayers;
//MatrixArray mit dem verschiedenen Matrizen initialisieren für hiddenlayers
//und für bias
allWeights = new Matrix[numberOfHiddenLayers];
bias = new Matrix[numberOfHiddenLayers];
allWeights[0] = new Matrix(hidden_nodes, input_nodes);
bias[0] = new Matrix(1,hidden_nodes);
for(int i = 1; i < numberOfHiddenLayers-1; i++) {
allWeights[i] = new Matrix(hidden_nodes,hidden_nodes);
bias[i] = new Matrix(1,hidden_nodes);
}
allWeights[numberOfHiddenLayers-1] = new Matrix(output_nodes, hidden_nodes);
bias[numberOfHiddenLayers-1] = new Matrix(1,hidden_nodes);
bias = new Matrix[numberOfHiddenLayers];
for(int i = 0; i < numberOfHiddenLayers; i++) {
allWeights[i].random();
bias[i].random();
}
}
Bei bias.random() gibt er mir jedes mal eine NullPointerException, obwohl ich vorher noch im Code bias[0] definiere und auch alle anderen.