generated from freudenreichan/info2Praktikum-NeuronalesNetz
README aktualisiert:
Aufgabenteilung + KI Guideline eingefügt
This commit is contained in:
1 parent
4bfe32c0da
commit
a40f7788b0
1 file changed
+126
@@ -1,5 +1,17 @@
|
||||
# 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
|
||||
@@ -11,3 +23,117 @@
|
||||
## 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
|
||||
Reference in new issue
Block a user