aufgabenverteilung hinzugefuegt

This commit is contained in:
thumannma105082 committed 2026-11-02 08:59:29 +01:00
1 parent 447e77a7bf
commit 220db794b8
1 file changed
+70
+70
View File
@@ -0,0 +1,70 @@
Informatik 2 Praktikum - Aufgabe 2: Neuronales Netz
Aufgabenverteilung
===================================================
Aufwand in Prozent vom Gesamtaufwand (inkl. optionaler Aufgabe),
geschaetzt anhand der Aufgabenstellung.
Gemeinsam (jeder einmal)
------------------------
- Projektstruktur anschauen: welche Module gibt es, welche Funktionen fehlen?
- Startprogramm bauen und testen:
make mnist_initial
./mnist mnist_test.info2 mnist_model.info2
Maxi - Matrix-Modul (ca. 35 %)
------------------------------
- Struktur "Matrix" an geeigneter Stelle (matrix.h) anlegen:
Anzahl Zeilen, Anzahl Spalten, Zeiger auf die Werte.
- Fehlende Funktionen in matrix.c implementieren (Hinweise aus den Unittests).
- Funktion add mit zwei Modi:
* Elementweise Addition (gleiche Groesse)
* Broadcasting: Matrix + Spaltenvektor (Spalten = 1, gleiche Zeilenanzahl),
Vektorwert jeder Zeile wird auf alle Elemente der Zeile addiert.
- Fertig, wenn gruen:
make matrixTests && ./runMatrixTests
- WICHTIG: Das Matrix-Struct moeglichst frueh pushen, David braucht es
fuer die Tests des neuronalen Netzes.
Hannes - Bilder einlesen (ca. 35 %)
-----------------------------------
- readImages in imageInput.c implementieren (Strukturen stehen in imageInput.h).
- Dateiformat (Binaerdatei, im Binaermodus "rb" oeffnen):
* String "__info2_image_file_format__"
* Anzahl Bilder (unsigned short)
* Breite (unsigned short)
* Hoehe (unsigned short)
* pro Bild: Breite*Hoehe Pixel (unsigned char, 0-255), dann Label (unsigned char, 0-9)
- Zuerst sinnvolle Hilfsfunktionen als static in imageInput.c schreiben
(z.B. Header pruefen, Header lesen, ein Bild lesen) und dafuer eigene
Unittests in imageInputTests.c ergaenzen.
- Danach readImages mit den Hilfsfunktionen zusammenbauen.
- Fertig, wenn gruen:
make imageInputTests && ./runImageInputTests
- Tipp: nach jedem Teilschritt testen und committen.
David - Neuronales Netz, Feinschliff, Optional (ca. 30 %)
---------------------------------------------------------
- prepareNeuralNetworkFile() in neuralNetworkTests.c implementieren (ca. 15 %):
Erzeugt eine gueltige Testdatei. Dateiformat in neuralNetwork.c nachlesen
(Lesefunktion) und genau spiegelbildlich schreiben.
Datei beginnt mit "__info2_neural_network_file_format__", danach die Schichten.
- Fertig, wenn gruen:
make neuralNetworkTests && ./runNeuralNetworkTests
- Feinschliff (ca. 5 %), wenn alle Teile da sind:
* Projekt kompiliert ohne Warnungen
* alle Unittests laufen durch
* make mnist && ./mnist mnist_test.info2 mnist_model.info2
- Optional (ca. 10 %): Ziffern mit der Maus malen und erkennen lassen,
in mnistVisualization.c mit Raylib.
Git-Regeln im Team
------------------
- Vor jedem Arbeiten: git pull
- Nur eigene Dateien committen: git add <datei> (nicht git add .)
- Ordner und Dateien NICHT verschieben oder umbenennen.
- .idea/ und cmake-build-*/ nicht committen.