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:
|
# 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:
|
## imageInput:
|
||||||
- Implementieren Sie geeignete Hilfsfunktionen für das Lesen der Bildserie aus einer Datei
|
- 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 readImages unter Benutzung Ihrer Hilfsfunktionen
|
||||||
@@ -11,3 +23,117 @@
|
|||||||
## neuralNetworkTests:
|
## neuralNetworkTests:
|
||||||
- prepareNeuralNetworkFile
|
- 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