Files
Neuronales-Netz/Startcode
deschnerja104273 a40f7788b0 README aktualisiert:
Aufgabenteilung + KI Guideline eingefügt
2026-10-23 11:04:57 +02:00
..
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 07:53:02 +00:00
2026-10-23 11:04:57 +02:00
2026-10-23 07:53:02 +00:00

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:

add()

Anforderungen:

  • Elementweise Addition zweier Matrizen gleicher Größe
  • Broadcasting einer Spaltenvektor-Matrix auf eine größere Matrix

Tests ausführen

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

make imageInputTests
./runImageInputTests

Aufgabe 3: Neuronales Netz testen

In neuralNetworkTests.c die Funktion

prepareNeuralNetworkFile()

implementieren.

Ziel

  • Eine gültige Testdatei für die Unit-Tests generieren
  • Die erwartete Dateistruktur einhalten

Tests ausführen

make neuralNetworkTests
./runNeuralNetworkTests

Abschluss

Vor der Abgabe sicherstellen, dass:

  • Alle Unit-Tests erfolgreich sind
  • Keine Compiler-Warnungen auftreten
  • Das Gesamtprogramm korrekt funktioniert

Endprogramm kompilieren

make mnist

Programm ausführen

./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