Page 2 of 2

Re: Import von Netzen

Posted: Fri 20. Nov 2015, 22:34
by targz
Hallo Herr Jetter,
jetzt schalte auch ich mich ein, da ich denke dass sich meine Frage hier gut integriert.
Ich habe bis jetzt meine Netze immer als .csv exportiert und dann in, wie es in meinem Fall ist, Java eingelesen. Das klappte meistens recht gut, sobald die Netze aber einige Hidden Layers bekamen musste man den Code allerdings stark überarbeiten. Ich habe mir Heute die DLL Variante angeschaut und würde diese gerne benutzen. Allerdings entwickel ich unter Linux Ubuntu und kann daher keine .Dll benutzen. Ich denke nicht dass eine entsprechene Änderung/Erweiterung geplant ist?
Gerade habe ich folgendes Zitat von ihnen gelesen:
1.) Export eines einzelnen Netzes in C Code und damit machen, was man will (z.B. auf einem Microcontroller laufen lassen, in eine eigene Anwendung oder Dll einbinden...). Das Netz ist dann allerdings im Code eingefroren, kann also nicht mehr nachtrainiert werden.
Ich muss mich mit dem Thema wohl nocheinmal genauer befassen aber wenn ich das richtig verstehe kann ich den C Code in meine eigene Dll bzw. So Datei schreiben.
Am elegantesten erscheint mir ja immer noch die Arbeit mit der Dll. Tja.. Windows halt. Man kann nicht mit aber auch nicht ohne.

Re: Import von Netzen

Posted: Sun 22. Nov 2015, 16:03
by TJetter
targz wrote: Ich denke nicht dass eine entsprechene Änderung/Erweiterung geplant ist?
Nein, das ist derzeit tatsächlich nicht in Planung. Leider sind weder MemBrain noch die MemBrain dll plattformunabhängig geschrieben. Beide basieren massiv auf den MFC (Microsoft Foundation Classes) und beschränken sich damit absolut auf Windows: Es gibt für MFC-Code keine (zumindest keine legale) Cross-Kompilierungsmöglichkeit für Linux.
targz wrote:aber wenn ich das richtig verstehe kann ich den C Code in meine eigene Dll bzw. So Datei schreiben
Ich vermute, Sie meinen das Richtige damit, aber einfach in eine dll oder so 'schreiben' können Sie den Code natürlich nicht. Sie müssen ihn vielmehr mit einem C/C++-Compiler auf einer Linux-Maschine in ein shared object (so) kompilieren bzw. direkt in ein C++-Programm einkompilieren.
Ich habe unter Linux noch nicht (signifikant) entwickelt, eine so habe ich noch nicht selbst erstellt. Da das aber ein Standard-Vorgehen analog zur Erstellung einer dll unter Windows ist, sollte es für jemanden, der ohnehin bereits unter Linux entwickelt kein Problem sein, denke ich. Es ist aber eben kein Java, sondern C-Code.
Den Code muss man für jede Netzversion neu kompilieren. Wie gesagt, ist das Netz dann 'eingefroren', es lässt sich im C-Code nicht mehr nachtrainieren oder sonst irgendwie verändern.

Ich weiß, dass die dll bei anderen Kunden bereits in Linux unter 'Wine' verwendet wird. Dafür wurde um die dll eine eigene kleine Windows-Anwendung gebaut, die unter Wine läuft und die über Socket (TCP/IP) Kommunikation durch die eigentliche Linux-Anwendung verwendet wird. Da war ich allerdings nicht direkt eingebunden, Details zur Umsetzung kann ich also leider nicht beisteuern...

Viele Grüße

Re: Import von Netzen

Posted: Mon 30. Nov 2015, 20:25
by TJetter
Hallo,

die gerade online gegangene MemBrain-Version 06.01.02.00 unterstützt jetzt das Einstellen der Trennzeichen für CSV-Files (siehe Hyperlink in der F1-Hilfe im Bereich 'Changes to previous versions) für weitere Informationen).

Viele Grüße

Re: Import von Netzen

Posted: Sun 6. Oct 2019, 19:17
by TJetter
Nur als Ergänzung/Update zu diesem Thread:
Die MemBrain dll unterstützt seit Jahren nun bereits die Erstellung neuer Netze un das Editieren bestehender Netze.
Ebenso gehört das Clipping der Eingangsdaten bei den Aktivierungsfunktionen IDENTICAL bzw. IDENT_0_TO_1 bereits seit langem der Vergangenheit an.