8051 MCU - Neuronales Netz programmieren?

Gast #7150837
Servus,

Diese Frage ist ernst gemeint, auch wenn sie ungewöhnlich klingt:

Ich würde gerne auf einem 8051 MCU ein eindaches Neuronales Netz 
implementieren bzw. mithilfe dessen eine simple Machine Learning 
Anwendung konzipieren. Ist das prinzipiell möglich?

Was bräuchte man dafür? Assembler oder Python - würde beides 
funktionieren?


Danke!
Gast #7150843
Jon schrieb:
> Ist das prinzipiell möglich?

Ja.
Es ist halt witzlos klein.

> Was bräuchte man dafür?

Know how über die Algorithmen, na ja, notfalls geht copy&paste.

> Assembler oder Python - würde beides
> funktionieren?

Python auf einen 8051, nein.
#7151013
Jon schrieb:
> Ich würde gerne auf einem 8051 MCU ein eindaches Neuronales Netz
> implementieren bzw. mithilfe dessen eine simple Machine Learning
> Anwendung konzipieren. Ist das prinzipiell möglich?

Der 8051 ist konzipiert für Bit- und Bytemanipulationen, da ist er 
schnell.
Ab 16bit Datenbreite werden Programme schnarchlangsam.

Es hindert einen aber auch niemand daran, über die Ports 4GByte RAM 
anzusprechen und einen beliebigen Prozessor zu emulieren, man muß nur 
eventuell etliche Jahre auf ein erstes Ergebnis warten (Vorbild: 
Teertropfenexperiment).

Schneller könnte es werden, wenn man die Firma Thinking Machines Corp." 
mit ihren 1-Bit-Prozessoren nachmacht, da wäre dann ein 8051 für 1 Bit 
zuständig.
Da ein CH552 nur 0,30 Euronen kostet, ist das vielleicht erschwinglicher 
als das Original.

Gruß Klaus (der soundsovielte)
Gast #7151018
Jon schrieb:

> Ich würde gerne auf einem 8051 MCU ein eindaches Neuronales Netz
> implementieren bzw. mithilfe dessen eine simple Machine Learning
> Anwendung konzipieren. Ist das prinzipiell möglich?

Ja.

> Was bräuchte man dafür? Assembler oder Python - würde beides
> funktionieren?

Würde beides gehen.

Bloß praktisch nützlich? Eher nicht... Egal, ob Asm oder Python...
Gast #7151064
Ohne Vorstellungen zum Problem ... ja - geht, nein - geht nicht.  Ich 
denke einen Hidden Layer mit zB 128 Knoten, 8 Aingangs- und 8 
Ausgangsknoten sollte moeglich sein. Taktung .. vielleicht 1.. 10 Hz. 
Die Tanh() Funktion natuerlich in Integer, als Tabelle hinterlegt. 
Trainieren, besser auf dem PC.

Was auch immer man damit machen kann. zB TicTacToe
#7151118
Das geht auf dem 8052 nur in C / Assembler, weil Du ein
System mit extremen Bankswitching entwerfen mußt, um
Speicher zu scheffeln.
Wenn Du aber nen "Schachtürken" entwickeln willst,
ist der RASPI und python die bessere Wahl.


mfg
#7151158
Ich würde mindestens 5X64 Kbyte RAM nehmen
und 32-64 Kbyte Flash.

Segment1  Tabellen / Variablen 64 kbyte
Segment2  Eingangsnetz 64 Kbyte
Segment3  1. Innenlage 64 kbyte
Segment4  2. Innenlage 64 Kbyte
Segment5  Ausgangsnetz 64 Kbyte

Auch dies ist noch ganz schön lütt, da
ja noch der Massenspeicher fehlt.

mfg
Gast #7151200
Entwickle das Model in Python z.b. PyTorch, Tensorflow, ... auf einem 
Desktop Rechner, schau wie viele Ressourcen du für die Inferenz brauchst 
und wähle danach deine Hardware aus. Exportiere das trainierte Modell 
z.B. ONNX und implementiere die NN-Runtime auf deiner Hardware (in ASM, 
C, C++, Rust, ...).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 4 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.