From bf367332740b74cd0181e8b78cc4eb78a3e52974 Mon Sep 17 00:00:00 2001 From: LukVal54 Date: Fri, 28 Nov 2025 08:04:50 +0100 Subject: [PATCH] neuralNetworkTests --- neuralNetworkTests.c | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/neuralNetworkTests.c b/neuralNetworkTests.c index 21ab370..5173fa2 100644 --- a/neuralNetworkTests.c +++ b/neuralNetworkTests.c @@ -6,11 +6,46 @@ #include "neuralNetwork.h" + static void prepareNeuralNetworkFile(const char *path, const NeuralNetwork nn) { - // TODO + //öffnet die Datei in Binär zum schreiben + FILE *file = fopen(path, "wb"); + if (!file) return; + //Fester Headerstring + const char *tag = "__info2_neural_network_file_format__"; + fwrite(tag, sizeof(char), strlen(tag), file); + //Bestimmt die Eingabedimension + int inputDim = nn.layers[0].weights.cols; + fwrite(&inputDim, sizeof(int), 1, file); + + + for (unsigned int i = 0; i < nn.numberOfLayers; i++) { + + const Layer *L = &nn.layers[i]; + const Matrix *W = &L->weights; + const Matrix *B = &L->biases; + + int outputDim = W->rows; + fwrite(&outputDim, sizeof(int), 1, file); + //Anzahl der Weight-Werte + size_t weightCount = (size_t)(W->rows * W->cols); + fwrite(&weightCount, sizeof(size_t), 1, file); + //Anzahl der Bias-Werte + size_t biasCount = (size_t)(B->rows * B->cols); + fwrite(B->buffer, sizeof(MatrixType), biasCount, file); + + inputDim = outputDim; + } + + int zero = 0; + fwrite(&zero, sizeof(int), 1, file); + + fclose(file); + } + void test_loadModelReturnsCorrectNumberOfLayers(void) { const char *path = "some__nn_test_file.info2";