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!
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.
MaWin schrieb: > Python auf einen 8051, nein Auf 8051 ist C üblich aber wenn es wie Python sein soll es gibt noch BASIC
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)
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...
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
Flieger schrieb: > Ich denke einen Hidden Layer mit zB 128 Knoten, 8 Aingangs- und 8 > Ausgangsknoten sollte moeglich sein So viel RAM hat der 8051 nicht. Nimm 4 Eingänge und Ausgänge. Klar ist das sinnlos, aber das ist wohl egal
Wenn es darum geht Erfahrung mit "Neuronale Netze" zu machen, würde ich auf den 8051 verzichten und eine Kombination von Raspberry Pi und Intel® Neural Compute Stick 2 einsetzen. https://www.intel.de/content/www/de/de/support/articles/000057005/boards-and-kits.html
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
Flieger schrieb: > Der 8051 kann doch externes RAM ansprechen Gibt doch auch 8051 mit "relativ" viel RAM zudem kann man die const Tabellen ja einfach in den Flash schieben mit code const https://www.silabs.com/mcu/8-bit-microcontrollers/efm8-laser-bee https://www.silabs.com/mcu/8-bit-microcontrollers/c8051f58x
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
Flieger schrieb: > Der 8051 kann doch externes RAM ansprechen.. Über Portexpander kann er beliebig viel RAM ansprechen. Es gibt auch RAM Chips mit serieller Schnittstelle.
Wenn es 8051 sein soll dann nimm einen DQ80251 von DCD, der ist schon etwas schneller, ist 32-Bit und soll zu 8051 sehr kompatibel sein.
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, ...).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.