EBSILONProfessional erlaubt ab Version 10 das Evaluieren von neuronalen Netzen, die mit Hilfe des NN-Tools von Professor Bärmann (FH Gelsenkirchen) erstellt wurden.
Hierbei ist zu beachten, dass EBSILON ausschließlich die Evaluation von Netzen unterstützt. Anlernen, Weiterlernen oder gar das Erstellen neuer Netze ist nicht möglich. Hieraus folgt unter anderem, dass ein einmal geladenes Netz bei gleichem Input immer gleichen Output generiert.
Sowohl für das Laden als auch für die Evaluation eines Netzes ist eine Zusatzlizenz notwendig.
Die Integration erfolgt über das Bauteil 93 (Kernel-Scripting).
Netze können entweder in die Schaltung importiert (und sind damit Teil der .ebs-Datei), oder on-the-fly geladen werden.
Der Import geschieht auf der "Allgemeines"-Seite des Bauteil 93 Eigenschaften-Dialogs.
Die Evaluation geschieht mit Hilfe der EbsScript-Unit "@NNTool". Kern der Unit sind die Evaluierungs-Funktionen, die jeweils eine "nntoolreference" (bzw. einen Pfad) und ein Array mit Inputwerten als Eingabe erwarten und die Ergebnis in das "output"-Array schreiben.
Die "Real" Varianten erwarten ausschließlich Double-Werte, auch für Kategorie-Werte (d.h. 0 oder 1 für jeden der möglichen Werte, und damit auch entsprechend mehr Eingabewerte). die jeweils eine "nntoolreference" (bzw. einen Pfad) und ein Array mit Inputwerten als Eingabe erwarten und die Ergebnis in das "output"-Array schreiben.
Name |
Zweck |
Argumente |
Rückgabewert |
Beispiel |
Evaluierungs-Funktionen |
||||
nnEvalReal |
Evaluiert ein geladenes neuronales Netz mit Ein- und Ausgabewerten vom Typ REAL |
Input: 1. const NNTOOLREFERENCE: Struktur, die den ID-Referenz-Code auf das zuvor geladene Netz beinhaltet Output: |
NNTOOLRESULTENUM (Details siehe Unit @NNTool) |
|
nnEvalString |
Evaluiert ein geladenes neuronales Netz mit Ein- und Ausgabewerten vom Typ STRING |
Input: 1. const NNTOOLREFERENCE: Struktur, die den ID-Referenz-Code auf das zuvor geladene Netz beinhaltet Output: |
NNTOOLRESULTENUM (Details siehe Unit @NNTool) |
|
nnEvalVariant |
Evaluiert ein geladenes neuronales Netz mit Ein- und Ausgabewerten vom Typ VARIANT |
Input: 1. const NNTOOLREFERENCE: Struktur, die den ID-Referenz-Code auf das zuvor geladene Netz beinhaltet Output: |
NNTOOLRESULTENUM (Details siehe Unit @NNTool) |
Funktionen für eine einzelne Auswertung:
Bei jedem Aufruf wird das Netz aus der Datei geladen (verwenden Sie nnLoad und nnEval [Real] bei wiederholter Auswertung für höhere Effizienz).
Name |
Zweck |
Argumente |
Rückgabewert |
Beispiel |
Funktionen für eine Einzelauswertung |
||||
nnLoadAndEvalReal |
Lädt und evaluiert ein neuronales Netz für den vorgegebenen Pfad mit Ein- und Ausgabewerten vom Typ REAL |
Input: 1. STRING: Pfad zum neuronalen Netz inkl. Dateinamen 3. ARRAY OF REAL: Netz-Ausgabeparameter |
NNTOOLRESULTENUM (Details siehe Unit @NNTool) |
|
nnLoadAndEvalString |
Lädt und evaluiert ein neuronales Netz für den vorgegebenen Pfad mit Ein- und Ausgabewerten vom Typ STRING |
Input: 1. STRING: Pfad zum neuronalen Netz inkl. Dateinamen 3. ARRAY OF STRING: Netz-Ausgabeparameter |
NNTOOLRESULTENUM (Details siehe Unit @NNTool) |
|
nnLoadAndEvalVariant |
Lädt und evaluiert ein neuronales Netz für den vorgegebenen Pfad mit Ein- und Ausgabewerten vom Typ VARIANT |
Input: 1. STRING: Pfad zum neuronalen Netz inkl. Dateinamen 3. ARRAY OF VARIANT: Netz-Ausgabeparameter |
NNTOOLRESULTENUM (Details siehe Unit @NNTool) |
Die Funktionen nnLoad / nnUnload laden bzw. entladen ein Netz für den vorgegebenen Pfad, wohingegen
die Funktion nnGetKsNNToolReference die Referenzen eines Importierten Netzes zurückgibt.
Name |
Zweck |
Argumente |
Rückgabewert |
Beispiel |
nnLoad |
Lädt ein neuronales Netz für den vorgegebenen Pfad und liefert die Netz-Referenz (eine Variable vom Typ NNTOOLRESULTENUM) zum Evaluieren des Netzes |
Input: 1. STRING: Pfad zum neuronalen Netz inkl. Dateinamen Output: 2. NNTOOLRESULTENUM: Ergebnis-Code des Ladens |
NNTOOLREFERENCE - Struktur, die den ID-Referenz-Code auf das geladene Netz beinhaltet |
|
nnUnload |
Entlädt ein zuvor geladenes neuronales Netz |
Input NNTOOLREFERENCE: Struktur, die den ID-Referenz-Code auf das geladene Netz beinhaltet |
NNTOOLRESULTENUM (Details siehe Unit @NNTool) |
|
nnGetKsNNToolReference |
Liefert die Referenz eines in der Komponente 93 geladenen Netzes |
Input: 1. EBSCOMP93: Referenz auf Komp. 93 2. NNTOOLRESULTENUM: Ergebnis-Code der Ausführung |
NNTOOLREFERENCE - Struktur, die den ID-Referenz-Code auf das geladene Netz beinhaltet |
Info-Funktionen:
Name |
Zweck |
Argumente |
Rückgabewert |
Beispiel |
nnGetPath |
Liefert den Pfad des geladenen Netzes als String |
Input: NNTOOLREFERENCE: Struktur, die den ID-Referenz-Code auf das geladene Netz beinhaltet |
STRING: der komplette Pfad inkl. Datei-Namen |
|
nnGetInputCount |
Liefert die Gesamtanzahl (Real und String) der Eingabeparameter eines Netzes |
Input: NNTOOLREFERENCE: Struktur, die den ID-Referenz-Code auf das geladene Netz beinhaltet |
INTEGER: Anzahl der Eingabeparameter |
|
nnGetInputRealCount |
Liefert die Anzahl der Eingabeparameter eines Netzes vom Typ Real |
Input: NNTOOLREFERENCE: Struktur, die den ID-Referenz-Code auf das geladene Netz beinhaltet |
INTEGER: |
|
nnGetOutputCount |
Liefert die Gesamtanzahl (Real und String) der Ausgabeparameter eines Netzes |
Input: NNTOOLREFERENCE: Struktur, die den ID-Referenz-Code auf das geladene Netz beinhaltet |
INTEGER: Anzahl der Ausgabeparameter |
|
nnGetOutputRealCount |
Liefert die Anzahl der Ausgabeparameter eines Netzes vom Typ Real |
Input: NNTOOLREFERENCE: Struktur, die den ID-Referenz-Code auf das geladene Netz beinhaltet |
INTEGER: |
|
nnGetName |
Liefert den Namen des Parameters (Ein- oder Ausgabe) für den vorgegebenen Index |
Input: 1. NNTOOLREFERENCE: Struktur, die den ID-Referenz-Code auf das geladene Netz beinhaltet 2. BOOLEAN: wenn true, dann ein Eingabeparameter, wenn false, dann ein Ausgabeparameter 3. INTEGER: Index des Parameters |
STRING: Name des Parameters |
|
nnIsCategory |
Gibt true oder false je nachdem, ob der gefragte Parameter ein diskreter Wert oder ein Wert vom Typ Real ist |
Input: 1. NNTOOLREFERENCE: Struktur, die den ID-Referenz-Code auf das geladene Netz beinhaltet 2. BOOLEAN: wenn true, dann ein Eingabeparameter, wenn false, dann ein Ausgabeparameter 3. INTEGER: Index des Parameters |
BOOLEAN: true, wenn es ein diskreter Wert ist (Category), sonst false (Real) |
|
nnGetCategoryNames |
Liefert den ARRAY von Namen der diskreten Parameter |
Input: 1. NNTOOLREFERENCE: Struktur, die den ID-Referenz-Code auf das geladene Netz beinhaltet 2. BOOLEAN: wenn true, dann ein Eingabeparameter, wenn false, dann ein Ausgabeparameter 3. INTEGER: Index des Parameters |
ARRAY OF STRING: Namen der diskreten Parameter |
Im „Examples“-Verzeichnis befindet sich eine Beispieldatei Optimierungsstudie_Shortcut_Modell_V10.ebs und die Beispieldateien Optimierung_100000_Datensaetze.wgt und Optimierung_100000_Datensaetze.dsc für das Netz.