Files
deschnerja104273 a40f7788b0 README aktualisiert:
Aufgabenteilung + KI Guideline eingefügt
2026-10-23 11:04:57 +02:00

140 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Aufgabenverteilung:
| Flo | Jamin |
|---|---|
| Matrixfunktionen | Image-Ladefunktionen |
| Matrixmultiplikation | Dateiformat verstehen |
| Broadcasting | Datei einlesen |
| Speicherverwaltung | Speicherverwaltung |
| NN-Testdatei schreiben | clearSeries |
| ca. 50–55 % | ca. 45–50 % |
---
## imageInput:
- Implementieren Sie geeignete Hilfsfunktionen für das Lesen der Bildserie aus einer Datei
- Vervollständigen Sie die Funktion readImages unter Benutzung Ihrer Hilfsfunktionen
- Vervollständigen Sie die Funktion clearSeries, welche eine Bildserie vollständig aus dem Speicher freigibt
## matrix:
- Matrix-Funktionen implementieren
## neuralNetworkTests:
- prepareNeuralNetworkFile
---
# Co-Pilot Guideline:
---
## Aufgabe 1: Matrix-Modul implementieren
### Matrix-Struktur erstellen
Eine geeignete `struct Matrix` definieren, die mindestens enthält:
- Anzahl der Zeilen
- Anzahl der Spalten
- Speicherbereich für die Matrixwerte
### Fehlende Funktionen implementieren
Alle TODOs in `matrix.c` bearbeiten.
Besonderes Augenmerk auf die Funktion:
```c
add()
```
Anforderungen:
- Elementweise Addition zweier Matrizen gleicher Größe
- Broadcasting einer Spaltenvektor-Matrix auf eine größere Matrix
### Tests ausführen
```bash
make matrixTests
./runMatrixTests
```
---
## Aufgabe 2: Bilder einlesen
Die Datei `mnist_test.info2` enthält die Testbilder im Binärformat.
### Vorgehensweise
1. Sinnvolle Hilfsfunktionen in `imageInput.c` erstellen
2. Diese als `static` deklarieren
3. Eigene Unit-Tests ergänzen
4. Funktion `readImages()` implementieren
### Tests ausführen
```bash
make imageInputTests
./runImageInputTests
```
---
## Aufgabe 3: Neuronales Netz testen
In `neuralNetworkTests.c` die Funktion
```c
prepareNeuralNetworkFile()
```
implementieren.
### Ziel
- Eine gültige Testdatei für die Unit-Tests generieren
- Die erwartete Dateistruktur einhalten
### Tests ausführen
```bash
make neuralNetworkTests
./runNeuralNetworkTests
```
---
## Abschluss
Vor der Abgabe sicherstellen, dass:
- Alle Unit-Tests erfolgreich sind
- Keine Compiler-Warnungen auftreten
- Das Gesamtprogramm korrekt funktioniert
### Endprogramm kompilieren
```bash
make mnist
```
### Programm ausführen
```bash
./mnist mnist_test.info2 mnist_model.info2
```
---
## Optionale Erweiterung
Mit der Bibliothek **Raylib** eine grafische Oberfläche erstellen:
- Ziffern mit der Maus zeichnen
- Zeichnung als Eingabe für das neuronale Netz verwenden
- Klassifikation direkt anzeigen