diff --git a/I2_NeuronalerAbsturz/Start_Mac/neuralNetwork.c b/I2_NeuronalerAbsturz/Start_Mac/neuralNetwork.c index bd8f164..c94d969 100644 --- a/I2_NeuronalerAbsturz/Start_Mac/neuralNetwork.c +++ b/I2_NeuronalerAbsturz/Start_Mac/neuralNetwork.c @@ -67,14 +67,14 @@ static unsigned int readDimension(FILE *file) if(fread(&dimension, sizeof(int), 1, file) != 1) dimension = 0; - + return dimension; } static Matrix readMatrix(FILE *file, unsigned int rows, unsigned int cols) { Matrix matrix = createMatrix(rows, cols); - + if(matrix.buffer != NULL) { if(fread(matrix.buffer, sizeof(MatrixType), rows*cols, file) != rows*cols) @@ -126,13 +126,16 @@ NeuralNetwork loadModel(const char *path) if(file != NULL) { - if(checkFileHeader(file)) + if(checkFileHeader(file)) // __info2_neural_network_file_format__ { - unsigned int inputDimension = readDimension(file); - unsigned int outputDimension = readDimension(file); + unsigned int inputDimension = readDimension(file); // ein int + unsigned int outputDimension = readDimension(file);// noch ein int while(inputDimension > 0 && outputDimension > 0) { + // ließt zwei Matritzen (je eine Zeile mit allen Werten hintereinander, durch Leerzeichen getrennt) + // 1. Matrix: weights + // 2. Matrix: biases Layer layer = readLayer(file, inputDimension, outputDimension); Layer *layerBuffer = NULL; @@ -142,7 +145,7 @@ NeuralNetwork loadModel(const char *path) clearModel(&model); break; } - + layerBuffer = (Layer *)realloc(model.layers, (model.numberOfLayers + 1) * sizeof(Layer)); if(layerBuffer != NULL) @@ -201,7 +204,7 @@ static Matrix forward(const NeuralNetwork model, Matrix inputBatch) { Matrix biasResult; Matrix weightResult; - + weightResult = multiply(model.layers[i].weights, result); clearMatrix(&result); biasResult = add(model.layers[i].biases, weightResult); @@ -248,9 +251,9 @@ unsigned char *predict(const NeuralNetwork model, const GrayScaleImage images[], Matrix outputBatch = forward(model, inputBatch); unsigned char *result = argmax(outputBatch); - + clearMatrix(&outputBatch); - + return result; } @@ -265,4 +268,4 @@ void clearModel(NeuralNetwork *model) model->layers = NULL; model->numberOfLayers = 0; } -} \ No newline at end of file +}