Neuronales Netzwerke auf der "3cent CPU" (Padauk PFS154 und PMS150C)

OP #7698919

Eine Implementierung einer Inferenzengine für den MNIST Datensatz auf einer MCU mit 1kword ROM und 64 bytes RAM.

Die Eingangsdaten müssen auf 8x8 skaliert werden. Immerhin werden noch >90% Genauigkeit erreicht.

https://github.com/cpldcpu/BitNetPDK

Der Nutzen auf so einem kleinen Mikrocontroller ist natürlich begrenzt, zeigt aber wie weit machine-learning Ansätze skalieren können.

#7699275

Tim  . schrieb:

Eine Implementierung einer Inferenzengine für den MNIST Datensatz auf einer MCU mit 1kword ROM und 64 bytes RAM.

Entschuldige mein völliges Unwissen und die Übersetzung für mich:

Du hast

  • einen Handschrift-Datensatz (https://en.wikipedia.org/wiki/MNIST_database) genommen
  • nach 8x8 Pixel in Graustufen gerendert
  • damit ein neuronales Netz trainiert
  • das Netz (die Gewichtungen) und die Regeln in den Padauk gestopft
      • BitBang-Sende-Uart
      • 4 Test-Beispiel-Daten

Und der Padauk erkennt das "Geschmiere" zu 90% richtig? D.h. prinzipiell reicht der aus, um eine handgeschrieben Zahl zu erkennen, die ihm irgendwie übermittelt wird (abgesehen vom zusätzlich notwendigen RAM)?

Ich bin wirklich beeindruckt.

OP #7699300

Bruno V. schrieb:

Und der Padauk erkennt das "Geschmiere" zu 90% richtig? D.h. prinzipiell reicht der aus, um eine handgeschrieben Zahl zu erkennen, die ihm irgendwie übermittelt wird (abgesehen vom zusätzlich notwendigen RAM)?

Genau. Die UART-Routinen passen nur in den PFS154, der PMS150C kommt ohne Ausgabe aus.

Der MNIST-Datensatz ist ziemlich bekannt, da er der ersten relevanten Anwendung zu Grunde lag, bei der Machine-Learning für die Klassifizierung von Bildern genutzt wurde:

https://en.wikipedia.org/wiki/LeNet

#7699610

Koennte man damit eigentlich auch eine ADC-Messung mit sagen wir mal 50-100Messwerten mache und dann darin irgendein Muster finden? Sagen wir mal das Maximum nach einem Minimum oder irgendsowas schlichtes? Oder ist der dafuer schon zu klein?

Vanye

#7699873

Vanye R. schrieb:

Koennte man damit eigentlich auch eine ADC-Messung mit sagen wir mal 50-100Messwerten mache und dann darin irgendein Muster finden? Sagen wir mal das Maximum nach einem Minimum oder irgendsowas schlichtes? Oder ist der dafuer schon zu klein?

Bei 64 Byte RAM sollten die Daten schon als Stream vorliegen ;-)

Ohne das Projekt des TOs zu relativieren (das ist genial), hier was komplett anderes mit einem vergleichbaren Prozessor:

https://www.dos4ever.com/uscope/uscope_e.html

#7700046

Bei 64 Byte RAM sollten die Daten schon als Stream vorliegen ;-)

Okay okay.... :-) Aber es muss ja nicht immer so ganz minimal sein. Also sagen wir mal so ein kleiner STM32xxx mit 128k flash und 32k ram wie man sie heute zu dutzenden rumfliegen hat.

Das ist schon ganz interessant sich da mal mit zu beschaeftigen.

Vanye

OP #7700452

Vanye R. schrieb:

Koennte man damit eigentlich auch eine ADC-Messung mit sagen wir mal 50-100Messwerten mache und dann darin irgendein Muster finden? Sagen wir mal das Maximum nach einem Minimum oder irgendsowas schlichtes? Oder ist der dafuer schon zu klein?

Ja klar. Für Zeitserien würde man aber evtl. auf RNN zurück greifen. https://en.wikipedia.org/wiki/Recurrent_neural_network

Für einfachere Aufgaben reichen wohl klassische statistische Methoden.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 2 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.