From 5b295c52d19a4f5d73c7ad4746d1010b9ef08f3a Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 15 May 2026 11:11:35 +0200 Subject: [PATCH] complete code --- imageInput.c | 5 ++++- matrix.c | 3 ++- neuralNetwork.c | 2 +- neuralNetworkTests.c | 30 ++++++++++++++++++++++++++++++ runImageInputTests | Bin 0 -> 65296 bytes runNeuralNetworkTests | Bin 0 -> 78800 bytes 6 files changed, 37 insertions(+), 3 deletions(-) create mode 100755 runImageInputTests create mode 100755 runNeuralNetworkTests diff --git a/imageInput.c b/imageInput.c index 0dd3b4c..37a21dc 100644 --- a/imageInput.c +++ b/imageInput.c @@ -49,7 +49,10 @@ GrayScaleImageSeries *readImages(const char *path) } unsigned short numberOfImages, width, height; - readFileHeader(file, &numberOfImages, &width, &height); // Hilfsfunktion von oben + if (!readFileHeader(file, &numberOfImages, &width, &height)) { + fclose(file); + return NULL; + } GrayScaleImageSeries *series = malloc(sizeof(GrayScaleImageSeries)); // Speicher in Serie-Struktur reservieren if (series == NULL) { // kann nicht angelegt werden diff --git a/matrix.c b/matrix.c index 67c64ce..d2d725f 100644 --- a/matrix.c +++ b/matrix.c @@ -99,6 +99,7 @@ Matrix multiply(const Matrix matrix1, const Matrix matrix2) } for (unsigned int i =0; i < resultRows; ++i){ for (unsigned int j =0; j< resultCols; ++j){ + // compute dot product of row i from matrix1 and column j from matrix2 MatrixType sum = 0.0; for (unsigned int k =0; k< matrix1.cols; ++k){ MatrixType val1 =getMatrixAt(matrix1, i,k); @@ -107,7 +108,7 @@ Matrix multiply(const Matrix matrix1, const Matrix matrix2) } - unsigned int resultIndex = i * resultCols + j; + unsigned int resultIndex = i * resultCols + j; // store the result resultBuffer [resultIndex] = sum; } } diff --git a/neuralNetwork.c b/neuralNetwork.c index bd8f164..30e6e4f 100644 --- a/neuralNetwork.c +++ b/neuralNetwork.c @@ -170,7 +170,7 @@ NeuralNetwork loadModel(const char *path) static Matrix imageBatchToMatrixOfImageVectors(const GrayScaleImage images[], unsigned int count) { - Matrix matrix = {NULL, 0, 0}; + Matrix matrix = {0, 0, NULL}; if(count > 0 && images != NULL) { diff --git a/neuralNetworkTests.c b/neuralNetworkTests.c index 21ab370..0d41072 100644 --- a/neuralNetworkTests.c +++ b/neuralNetworkTests.c @@ -8,6 +8,36 @@ static void prepareNeuralNetworkFile(const char *path, const NeuralNetwork nn) { + FILE *file = fopen(path, "wb"); + + if (file != NULL){ + const char *fileTag = "__info2_neural_network_file_format__"; // write the file header + fwrite(fileTag, sizeof(char), strlen(fileTag), file); + for (unsigned int i =0; i< nn.numberOfLayers; i++){ //write each layer to the file + Layer layer = nn.layers[i]; + int inputDimension = layer.weights.cols; // extract inputDimension from weights + int outputDimension = layer.weights.rows; // extract outputDimension from weights + + // For the first layer, write both inputDimension and outputDimension + // For subsequent layers, only write outputDimension (inputDimension = previous outputDimension) + if (i == 0) { + fwrite(&inputDimension, sizeof(int), 1, file); + } + fwrite(&outputDimension, sizeof(int), 1, file); + + // write weights matrix data + int weightsElementcount= layer.weights.rows *layer.weights.cols; + fwrite(layer.weights.buffer, sizeof(MatrixType), weightsElementcount, file); + + //write biases matrix data + int biasesElementCount = layer.biases.rows *layer.biases.cols; + fwrite(layer.biases.buffer, sizeof (MatrixType), biasesElementCount, file); + + } + int endMarker = 0; // write end marker (0) to signal no more layers + fwrite(&endMarker, sizeof(int), 1, file); + fclose(file); // close the file + } // TODO } diff --git a/runImageInputTests b/runImageInputTests new file mode 100755 index 0000000000000000000000000000000000000000..c5570eb698d140f2ad24c8d5f8b58bcec7ea2c03 GIT binary patch literal 65296 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 W*DzVGZSEN+^zHwQwM{4Bs^Py@D@msS literal 0 HcmV?d00001 diff --git a/runNeuralNetworkTests b/runNeuralNetworkTests new file mode 100755 index 0000000000000000000000000000000000000000..6ef9579d4a6c87d8f56c92215ad84cfe51a2baa6 GIT binary patch literal 78800 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 literal 0 HcmV?d00001