Neural-Network-Translator: Universelles Übersetzungstool für neuronale Netze

Der Neural-Network-Translator verbindet die Entwicklungsphase und den Einsatz eines neuronalen Netzes auf Mikrocontrollern. Übersetzungsarbeit wird reduziert.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen
Lesezeit: 12 Min.
Von
  • Christoph Brandl
  • Florian Gabsteiger
  • Philipp Grandeit
Inhaltsverzeichnis

Wo große Datenmengen verfügbar sind, lassen sich (fast) alle erdenklichen Aufgabenstellungen mit ML-Ansätzen wie künstlichen neuronalen Netzen lösen. Komplexität und Umfang der Fragestellungen haben dabei mit der Zeit stetig zugenommen, was den Bedarf an Rechenleistung und Hardwareanforderungen bei Training und Ausführung der neuronalen Netze hat steigen lassen. In der Entwicklungsphase lässt sich dieser Aspekt meist noch vernachlässigen, da hier hoch spezialisierte Komponenten mit ausreichend Rechenleistung zum Einsatz kommen.

In konkreten Einsatzszenarien neuronaler Netze fällt jedoch auf, dass die Leistungsfähigkeit der dort genutzten Hardware im Vergleich zur Entwicklungsphase häufig geringer gewählt wird. So kommen auch in Autos mit Funktionen zum autonomen Fahren minimal ausgestattete Microcontroller Units (MCUs) zum Einsatz. Sie bieten nur einen Bruchteil der Rechenleistung eines durchschnittlichen Laptops, ganz zu schweigen von der eines ML-Beschleunigers à la Nvidia Jetson. Für Entwickler, die neuronale Netze für solche MCUs mit Arbeitsspeicher im Kilobytebereich konzipieren, stellen sich damit Fragen wie "Wie groß darf mein Netz sein, damit es auf meinen Mikrocontroller passt?" oder "Welche ML-Frameworks funktionieren auf meinem Mikrocontroller?".

Häufig nutzt man eines der etablierten ML-Frameworks wie TensorFlow oder PyTorch, um die Entwicklung neuronaler Netze zu erleichtern. Allerdings sind solche Frameworks aufgrund der limitierten Hardware meist nicht für Mikrocontroller verfügbar.