From 734b72d3465da3277a48c1c2197828fd533d73b0 Mon Sep 17 00:00:00 2001 From: Florian Wetzel Date: Tue, 18 Nov 2025 10:04:35 +0100 Subject: [PATCH] Erste Version neuralNetworksTests.c --- neuralNetworkTests.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/neuralNetworkTests.c b/neuralNetworkTests.c index 21ab370..8bbc264 100644 --- a/neuralNetworkTests.c +++ b/neuralNetworkTests.c @@ -9,6 +9,40 @@ static void prepareNeuralNetworkFile(const char *path, const NeuralNetwork nn) { // TODO + + FILE *f = fopen(path, "wb"); + if (!f) return; + + fwrite(FILE_HEADER_STRING, sizeof(char), strlen(FILE_HEADER_STRING), f); + + int inputDim = nn.layers[0].weights.cols; + int outputDim = nn.layers[0].weights.rows; + + fwrite(&inputDim, sizeof(int), 1, f); + fwrite(&outputDim, sizeof(int), 1, f); + + for (int i = 0; i < nn.numberOfLayers; i++) + { + Matrix weights = nn.layers[i].weights; + Matrix biases = nn.layers[i].biases; + + int numWeightValues = weights.rows * weights.cols; + int numBiasValues = biases.rows * biases.cols; + + fwrite(weights.buffer, sizeof(MatrixType), numWeightValues, f); + fwrite(biases.buffer, sizeof(MatrixType), numBiasValues, f); + + if (i < nn.numberOfLayers - 1) + { + int nextOutputDim = nn.layers[i + 1].weights.rows; + fwrite(&nextOutputDim, sizeof(int), 1, f); + } + } + + int endMarker = 0; + fwrite(&endMarker, sizeof(int), 1, f); + + fclose(f); } void test_loadModelReturnsCorrectNumberOfLayers(void)