EBSILON®Professional Online Dokumentation
EbsScript / EbsScript Interface Units / InterfaceUnit-NN-Tool (Neuronales Netz)
In diesem Thema
    InterfaceUnit-NN-Tool (Neuronales Netz)
    In diesem Thema

    NN-Tool

    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
    2. const ARRAY OF REAL: Netz-Eingabeparameter

    Output:
    3. ARRAY OF REAL: Netz-Ausgabeparameter

    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
    2. const ARRAY OF STRING: Netz-Eingabeparameter

    Output:
    3. ARRAY OF STRING: Netz-Ausgabeparameter

    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
    2. const ARRAY OF VARIANT: Netz-Eingabeparameter

    Output:
    3. ARRAY OF VARIANT: Netz-Ausgabeparameter

    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
    2. Const ARRAY OF REAL: Netz-Eingabeparameter
    Output:

    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
    2. Const ARRAY OF STRING: Netz-Eingabeparameter
    Output:

    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
    2. Const ARRAY OF VARIANT: Netz-Eingabeparameter
    Output:

    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
    Output:

    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.