From ae761afb00eed0a584e5cb4af90d65e79f3347ae Mon Sep 17 00:00:00 2001 From: Alexei Date: Sun, 23 Nov 2025 19:00:55 +0100 Subject: [PATCH] Version 1; prepare Funktion geschrieben --- .vscode/settings.json | 5 +++++ neuralNetworkTests.c | 48 +++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..7fc4c31 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "unity.h": "c" + } +} \ No newline at end of file diff --git a/neuralNetworkTests.c b/neuralNetworkTests.c index 6127eeb..7bb1760 100644 --- a/neuralNetworkTests.c +++ b/neuralNetworkTests.c @@ -8,8 +8,52 @@ static void prepareNeuralNetworkFile(const char *path, const NeuralNetwork nn) { - // TODO -}. + FILE *file = fopen(path, "wb"); + if (!fiile) + { + return; + } + + // Schreibe den Datei-Tag + const char tag = "info2_neural_network_file_format"; + fwrite(tag, 1, strlen(tag), file); + + // Überprüfe, ob es Layer gibt + if (nn.numberOfLayers == 0) + { + fclose(file); + return; + } + + // Schreibe die Eingabe- und Ausgabegrößen des Netzwerks + int input = nn.layers[0].weights.cols; + int output = nn.layers[0].weights.rows; + + fwrite(&input, sizeof(int), 1, file); + fwrite(&output, sizeof(int), 1, file); + + // Schreibe die Layer-Daten + for (int i = 0; i < nn.numberOfLayers; i++) + { + const Layerlayer = &nn.layers[i]; + int out = layer->weights.rows; + int in = layer->weights.cols; + + + fwrite(layer->weights.buffer, sizeof(MatrixType), out * in, file); + + + fwrite(layer->biases.buffer, sizeof(MatrixType), out * 1, file); + + if (i + 1 < nn.numberOfLayers) + { + int nextOut = nn.layers[i + 1].weights.rows; + fwrite(&nextOut, sizeof(int), 1, file); + } + } + + fclose(file); +} void test_loadModelReturnsCorrectNumberOfLayers(void) {