8051 MCU - Neuronales Netz programmieren?

Gast #7150837
Lesenswert?

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!
#7151013
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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
#7151158
Lesenswert?

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
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren