Start · Sprachen · PHP · Referenz · fann_get_train_stop_function

fann_get_train_stop_function

Funktion

Gibt die während des Trainings verwendete Stoppfunktion eines FANN-Netzes zurück.

Kategorie: misc

Signatur

fann_get_train_stop_function(resource $ann): int

Beschreibung

fann_get_train_stop_function liefert die aktuell konfigurierte Stoppfunktion des angegebenen künstlichen neuronalen Netzes (FANN). Die Stoppfunktion bestimmt, anhand welches Kriteriums das Training beendet wird – sobald der berechnete Fehler einen vorgegebenen Schwellwert unterschreitet.

Der Rückgabewert ist eine ganzzahlige Konstante, die einer der FANN-Stoppfunktionen entspricht: FANN_STOPFUNC_MSE (mittlerer quadratischer Fehler, Mean Squared Error) oder FANN_STOPFUNC_BIT (Anzahl der Bits, die einen bestimmten Fehlerschwellwert überschreiten). Die Wahl der Stoppfunktion beeinflusst, wie das Netz die Trainingsqualität misst.

Diese Funktion ist nützlich, wenn man zur Laufzeit überprüfen möchte, welche Stoppstrategie aktiv ist, bevor man Parameter wie den Fehler-Schwellwert (fann_set_train_stop_function) oder den Bit-Fehlerschwellwert anpasst. Sie gehört zur FANN-Erweiterung (Fast Artificial Neural Network) und setzt voraus, dass diese in PHP installiert und aktiviert ist.

Parameter

Name Typ Default Beschreibung
$ann Pflicht resource Eine gültige FANN-Netz-Ressource, die zuvor mit Funktionen wie fann_create_standard oder fann_read_train_from_file erstellt wurde.

Rückgabewert

Typ
int
Beschreibung
Gibt eine ganzzahlige Konstante zurück, die die Stoppfunktion repräsentiert: FANN_STOPFUNC_MSE (0) für den mittleren quadratischen Fehler oder FANN_STOPFUNC_BIT (1) für die Bit-Fehler-Methode. Im Fehlerfall wird false zurückgegeben.

Beispiele

Aktuelle Stoppfunktion eines Netzes auslesen

<?php
// Netz mit 2 Eingabe-, 3 versteckten und 1 Ausgabe-Neuron erstellen
$ann = fann_create_standard(3, 2, 3, 1);

if ($ann) {
    $stopFunc = fann_get_train_stop_function($ann);

    switch ($stopFunc) {
        case FANN_STOPFUNC_MSE:
            echo "Stoppfunktion: MSE (Mittlerer quadratischer Fehler)" . PHP_EOL;
            break;
        case FANN_STOPFUNC_BIT:
            echo "Stoppfunktion: BIT (Bit-Fehler-Methode)" . PHP_EOL;
            break;
        default:
            echo "Unbekannte Stoppfunktion: " . $stopFunc . PHP_EOL;
    }

    fann_destroy($ann);
}
?>
Stoppfunktion: MSE (Mittlerer quadratischer Fehler)

Stoppfunktion prüfen und ggf. ändern

<?php
$ann = fann_create_standard(3, 2, 4, 1);

if ($ann) {
    // Stoppfunktion auf BIT setzen
    fann_set_train_stop_function($ann, FANN_STOPFUNC_BIT);

    // Aktuell gesetzte Stoppfunktion auslesen
    $stopFunc = fann_get_train_stop_function($ann);

    if ($stopFunc === FANN_STOPFUNC_BIT) {
        echo "Netz verwendet die BIT-Stoppfunktion." . PHP_EOL;
        // Bit-Fehlerschwellwert festlegen
        fann_set_bit_fail_limit($ann, 0.35);
        echo "Bit-Fehlerschwellwert gesetzt auf 0.35" . PHP_EOL;
    }

    fann_destroy($ann);
}
?>
Netz verwendet die BIT-Stoppfunktion. Bit-Fehlerschwellwert gesetzt auf 0.35

// Wichtig · Fallstricke

Die FANN-Erweiterung ist nicht Bestandteil der Standard-PHP-Distribution und muss separat installiert werden (z. B. über PECL: pecl install fann). Ohne diese Erweiterung ist die Funktion nicht verfügbar.

Standardmäßig verwendet ein neu erstelltes FANN-Netz FANN_STOPFUNC_MSE als Stoppfunktion. Die Stoppfunktion kann mit fann_set_train_stop_function geändert werden. Der zugehörige Fehler-Schwellwert wird separat über fann_set_train_error_function oder fann_set_bit_fail_limit konfiguriert.