Start · Sprachen · PHP · Referenz · fann_get_network_type

fann_get_network_type

Funktion

Gibt den Typ des erstellten neuronalen Netzwerks zurück (z. B. <code>FANN_NETTYPE_LAYER</code> oder <code>FANN_NETTYPE_SHORTCUT</code>).

seit PHP 5.6.0 Kategorie: misc

Signatur

fann_get_network_type(resource $ann): int

Beschreibung

fann_get_network_type() fragt den internen Netzwerktyp einer FANN-Ressource ab. FANN (Fast Artificial Neural Network Library) unterstützt verschiedene Architekturen, die sich in der Art ihrer Verbindungen unterscheiden. Die Funktion liefert eine ganzzahlige Konstante, die angibt, um welchen Typ es sich handelt.

Die zwei häufigsten Rückgabewerte sind FANN_NETTYPE_LAYER (Standard-Schichtnetzwerk, bei dem jede Schicht nur mit der nächsten verbunden ist) und FANN_NETTYPE_SHORTCUT (Netzwerk mit Abkürzungsverbindungen, bei dem Neuronen auch mit weiter entfernten Schichten verbunden sein können). Dieser Unterschied ist besonders relevant, wenn ein gespeichertes Netz geladen und seine Architektur überprüft werden soll.

Die Funktion ist nützlich, um vor dem Training oder vor der Inferenz sicherzustellen, dass das geladene Netz dem erwarteten Typ entspricht. So lassen sich Konfigurationsfehler frühzeitig erkennen und abfangen.

Parameter

Name Typ Default Beschreibung
$ann Pflicht resource Eine gültige FANN-Netzwerk-Ressource, die z. B. mit fann_create_standard(), fann_create_shortcut() oder fann_create_from_file() erzeugt wurde.

Rückgabewert

Typ
int
Beschreibung
Gibt eine ganzzahlige Konstante zurück, die den Netzwerktyp beschreibt. Mögliche Werte sind FANN_NETTYPE_LAYER (0) für ein Standard-Schichtnetzwerk und FANN_NETTYPE_SHORTCUT (1) für ein Netzwerk mit Abkürzungsverbindungen. Bei einem Fehler (ungültige Ressource) wird false zurückgegeben.

Beispiele

Netzwerktyp eines Standard-Netzwerks prüfen

<?php
// Erstellt ein einfaches dreischichtiges Netzwerk: 2 Eingaben, 3 verdeckte, 1 Ausgabe
$ann = fann_create_standard(3, 2, 3, 1);

if ($ann) {
    $type = fann_get_network_type($ann);
    if ($type === FANN_NETTYPE_LAYER) {
        echo "Netzwerktyp: Standard-Schichtnetzwerk (FANN_NETTYPE_LAYER)" . PHP_EOL;
    } elseif ($type === FANN_NETTYPE_SHORTCUT) {
        echo "Netzwerktyp: Shortcut-Netzwerk (FANN_NETTYPE_SHORTCUT)" . PHP_EOL;
    } else {
        echo "Unbekannter Netzwerktyp: " . $type . PHP_EOL;
    }
    fann_destroy($ann);
} else {
    echo "Fehler beim Erstellen des Netzwerks." . PHP_EOL;
}
?>
Netzwerktyp: Standard-Schichtnetzwerk (FANN_NETTYPE_LAYER)

Netzwerktyp eines Shortcut-Netzwerks überprüfen

<?php
// Erstellt ein Shortcut-Netzwerk: 2 Eingaben, 4 verdeckte, 1 Ausgabe
$ann = fann_create_shortcut(3, 2, 4, 1);

if ($ann) {
    $type = fann_get_network_type($ann);
    switch ($type) {
        case FANN_NETTYPE_LAYER:
            echo "Typ: Schichtnetzwerk" . PHP_EOL;
            break;
        case FANN_NETTYPE_SHORTCUT:
            echo "Typ: Shortcut-Netzwerk" . PHP_EOL;
            break;
        default:
            echo "Typ: unbekannt (" . $type . ")" . PHP_EOL;
    }
    fann_destroy($ann);
} else {
    echo "Netzwerk konnte nicht erstellt werden." . PHP_EOL;
}
?>
Typ: Shortcut-Netzwerk

// Wichtig · Fallstricke

Voraussetzung: Die FANN-Erweiterung muss installiert und in der php.ini aktiviert sein (extension=fann). Diese Erweiterung ist nicht standardmäßig in PHP enthalten und muss über PECL installiert werden.

Wird eine ungültige oder bereits zerstörte Ressource übergeben, gibt die Funktion false zurück und erzeugt eine PHP-Warnung. Eine Überprüfung der Ressource vor dem Aufruf ist daher empfehlenswert.