Start · Sprachen · PHP · Referenz · fann_get_num_output

fann_get_num_output

Funktion

Gibt die Anzahl der Ausgabeneuronen im neuronalen Netz zurück.

seit PHP 5.6.0 Kategorie: misc

Signatur

fann_get_num_output(resource $ann): int

Beschreibung

fann_get_num_output liefert die Anzahl der Neuronen in der Ausgabeschicht eines mit der FANN-Bibliothek (Fast Artificial Neural Network) erstellten neuronalen Netzes. Diese Zahl entspricht der Dimension des Ausgabevektors, den das Netz nach einer Vorhersage zurückgibt.

Die Funktion ist besonders nützlich, wenn man die Netzarchitektur dynamisch auslesen möchte – etwa um sicherzustellen, dass die Anzahl der Ausgabeneuronen mit der Anzahl der Zielklassen oder Regressionswerte übereinstimmt, bevor Trainingsdaten übergeben werden.

Typisch wird sie zusammen mit fann_get_num_input und fann_get_num_layers eingesetzt, um eine vollständige Übersicht der Netzstruktur zu erhalten – beispielsweise zur Validierung, zur Protokollierung oder zum dynamischen Aufbau von Eingabe-/Ausgabevektoren.

Die Funktion ist Bestandteil der FANN-PHP-Extension und erfordert, dass diese Extension kompiliert und aktiviert ist.

Parameter

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

Rückgabewert

Typ
int
Beschreibung
Gibt die Anzahl der Neuronen in der Ausgabeschicht des neuronalen Netzes als Ganzzahl zurück. Im Fehlerfall (ungültige Ressource) wird 0 zurückgegeben.

Beispiele

Ausgabeneuronen eines neu erstellten Netzes auslesen

<?php
// Erstelle ein Netz mit 3 Eingabe-, 5 versteckten und 2 Ausgabeneuronen
$ann = fann_create_standard(3, 3, 5, 2);

if ($ann) {
    $numOutput = fann_get_num_output($ann);
    echo "Anzahl der Ausgabeneuronen: " . $numOutput . PHP_EOL;
    fann_destroy($ann);
} else {
    echo "Fehler beim Erstellen des neuronalen Netzes.";
}
Anzahl der Ausgabeneuronen: 2

Netzarchitektur aus gespeicherter Datei validieren

<?php
// Lade ein gespeichertes Netz und prüfe die Ausgabeschicht
$ann = fann_create_from_file('mein_netz.net');

if ($ann) {
    $numInput  = fann_get_num_input($ann);
    $numOutput = fann_get_num_output($ann);
    $numLayers = fann_get_num_layers($ann);

    echo "Schichten:           " . $numLayers  . PHP_EOL;
    echo "Eingabeneuronen:     " . $numInput   . PHP_EOL;
    echo "Ausgabeneuronen:     " . $numOutput  . PHP_EOL;

    // Sicherstellen, dass das Netz zu unserem Datensatz passt
    if ($numOutput !== 3) {
        throw new RuntimeException(
            "Netz hat $numOutput Ausgabeneuronen, erwartet wurden 3."
        );
    }

    fann_destroy($ann);
} else {
    echo "Netz konnte nicht geladen werden.";
}
Schichten: 3 Eingabeneuronen: 4 Ausgabeneuronen: 3

// Wichtig · Fallstricke

Die FANN-Extension ist nicht standardmäßig in PHP enthalten. Sie muss über PECL installiert (pecl install fann) oder manuell gegen die libfann-Bibliothek kompiliert werden. Seit PHP 8.x ist die Extension nicht mehr offiziell gepflegt; Einsatz in modernen Projekten sollte sorgfältig geprüft werden.

Wird eine ungültige oder bereits mit fann_destroy freigegebene Ressource übergeben, kann es zu einem PHP-Fehler oder einem Rückgabewert von 0 kommen. Ressourcen stets vor Verwendung auf Gültigkeit prüfen.