From 6963e15557b6da8d69af54692dfed8c6559d4ddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lilli=20K=C3=BChnemund?= Date: Wed, 4 Nov 2026 09:31:59 +0100 Subject: [PATCH] Implement neural network file preparation --- Startcode/neuralNetworkTests.c | 56 ++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/Startcode/neuralNetworkTests.c b/Startcode/neuralNetworkTests.c index 21ab370..bd6f0ed 100644 --- a/Startcode/neuralNetworkTests.c +++ b/Startcode/neuralNetworkTests.c @@ -9,6 +9,62 @@ static void prepareNeuralNetworkFile(const char *path, const NeuralNetwork nn) { // TODO + // 1. Datei Öffnen + FILE *file = fopen(path, "wb") + + // überprüfen ob das öffnen funktioniert hat + if (file == NULL) + { + return; + } + + // 2. Datei-Header schreiben (Überschrifft bzw. Stempel was in der Datei steht) + const char *fileTag = "__info2_neural_network_file_format__"; + fwrite(fileTag, sizeof(char), strlen(fileTag), file); + + // 3. Eingabe- und Ausgabedimension bestimmen + int inputDimension = nn.layers[0].weights.cols; + int outputDimension = nn.layers[0].weights.rows; + // in unser File speichern + fwrite(&inputDimension, sizeof(int), 1, file); + fwrite(&outputDimension, sizeof(int), 1, file); + + for(unsigned int i = 0; i < nn.numberOfLayers; i++) + { + // Speichern der aktuellen Speicheradresse + const Layer *layer = &nn.layers[i]; + + // Gewichtsmatrix des aktuellen Layers in die Datei speichern + fwrite + ( + layer->weights.buffer, + sizeof(MatrixType), + layer->weights.rows * layer->weights.cols, + file + ); + + //Bias-Matrix + fwrite + ( + layer->biases.buffer, + sizeof(MatrixType), + layer->biases.rows * layer->biases.cols, + file + ); + + // + if (i + 1 < nn.numberOfLayers) + { + outputDimension = nn.layers[i + 1].weights.rows; + } + else + { + outputDimension = 0; + } + fwrite(&outputDimension, sizeof(int), 1, file); + } + + fclose(file); } void test_loadModelReturnsCorrectNumberOfLayers(void)