Fehlende Funktion für Hidden Neurons in MembrainDLL

Haben Sie Fragen zur Bedienung bestimmter Features von MemBrain? Sind Sie nicht sicher, welches Häkchen was bewirkt? Möchten Sie wissen, ob eine bestimmte Funktionalität in MemBrain vorhanden ist oder nicht?

Dann stellen Sie Ihre Fragen hier!
Post Reply
ErnstF
Posts: 3
Joined: Thu 25. May 2017, 10:11

Fehlende Funktion für Hidden Neurons in MembrainDLL

Post by ErnstF » Sun 25. Jun 2017, 19:40

Hallo,

ich verwende derzeit die Membrain DLL zu Erstellung und Management von Kohonen Netzen.
In diesem Zusammenhang benötige ich für meinen Anwendungsfall auch Unresolved/Hidden Neuronen.
Obwohl Neuronen dieses Typs mittels DLL problemlos erstellt und mit Namen versehen werden können, so finde ich doch keine Funktion, mit der man den Namen solcher Neuronen wieder auslesen kann. ( MB_GetInputName und MB_GetOutputName gibt es. Eine Funktion MB_GetHiddenName oder MB_GetUnresolvedName finde ich nicht).

Fehlt diese Funktion tatsächlich oder übersehe ich hier was?

Gruß
Ernst

User avatar
TJetter
Posts: 306
Joined: Sat 13. Oct 2012, 12:04

Re: Fehlende Funktion für Hidden Neurons in MembrainDLL

Post by TJetter » Sun 25. Jun 2017, 21:44

Hallo,

eine solche Funktion gibt es momentan tatsächlich nicht. Ich nehme das gerne als Erweiterungswunsch für die nächste Version auf.
Zu welchem Zweck wird es denn im konkreten Fall benötigt?

Viele Grüße,
Thomas Jetter

ErnstF
Posts: 3
Joined: Thu 25. May 2017, 10:11

Re: Fehlende Funktion für Hidden Neurons in MembrainDLL

Post by ErnstF » Mon 26. Jun 2017, 11:25

Hallo ,

ich verwende die Membrain DLL in einer mehrprozessor multihtreading Architektur mit sehr vielen gleichzeitig geladenen Netzen.
Vor dem Aufruf wichtiger Lern- und Berechnungsfunktionen möchte ich sicherstellen, dass auch wirklich das "richtige" Netz geladen und über die DLL richtig indiziert verwendet wird.
Da die Membrain DLL leider keine Möglichkeit bietet, eine netzspezifische Information zur Laufzeit zu hinterlegen und auch der Dateiname nicht abrufbar ist, wollte ich diese Prüfinformation behelfsmäßig über Hidden Neuronen und deren einziges Textattribut Name nachbilden.

Besser wäre es natürlich, man könnte mittels der DLL ein Tag-Objekt pro Netz zuordnen und verwalten.

Gruß
Ernst

User avatar
TJetter
Posts: 306
Joined: Sat 13. Oct 2012, 12:04

Re: Fehlende Funktion für Hidden Neurons in MembrainDLL

Post by TJetter » Mon 26. Jun 2017, 11:41

ErnstF wrote:ich verwende die Membrain DLL in einer mehrprozessor multihtreading Architektur mit sehr vielen gleichzeitig geladenen Netzen.
Achtung: Die dll is nicht Multi threading fähig, also selbst entsprechende Serialisierungen von Aufrufen implementieren!
ErnstF wrote:Vor dem Aufruf wichtiger Lern- und Berechnungsfunktionen möchte ich sicherstellen, dass auch wirklich das "richtige" Netz geladen und über die DLL richtig indiziert verwendet wird.

Genügt die Funktion 'GetSelectedNet' hierfür nicht?

Viele Grüße
Thomas Jetter

ErnstF
Posts: 3
Joined: Thu 25. May 2017, 10:11

Re: Fehlende Funktion für Hidden Neurons in MembrainDLL

Post by ErnstF » Thu 29. Jun 2017, 14:06

Danke für den Hinweis.

GetSelectedNet hatte ich bereits als erste Absicherung implementiert.
Da diese Funktion allerings ebenfalls "nur" den Index auf das interne Array liefert schien sie mir ebenfalls anfällig für race conditions, weswegen ich eine weitere "line of defence" einziehen wollte. :geek:

Über den Zugriff auf ein im Netz gespeichertes, eindeutiges Objekt wäre die Prüfung meiner Ansicht nach einfachst lösbar.

Ich habe die Zugriffs- und Validierungsfunktionen nun shared und mit entsprechenden synclocks implementiert.

Danke +Grüße
Ernst

Post Reply