Signatur
Beschreibung
fann_get_sarprop_step_error_threshold_factor liest den aktuell eingestellten Schwellenwertfaktor für den Schrittfehler (englisch: step error threshold factor) aus einem mit der FANN-Bibliothek erstellten neuronalen Netz aus. Dieser Faktor wird ausschließlich vom SARPROP-Trainingsalgorithmus verwendet.
SARPROP (Self-Adaptive Resilient Propagation) ist eine Weiterentwicklung des klassischen RPROP-Algorithmus. Der Schrittfehler-Schwellenwertfaktor beeinflusst, ab welchem relativen Fehleranteil die Schrittweite während des Trainings angepasst wird. Ein höherer Wert führt dazu, dass Schrittanpassungen seltener ausgelöst werden.
Der Standardwert dieses Parameters beträgt 0.1. Um den Wert zu setzen, kann die Gegenfunktion fann_set_sarprop_step_error_threshold_factor verwendet werden. Diese Einstellung ist nur relevant, wenn FANN_TRAIN_SARPROP als Trainingsalgorithmus gesetzt ist.
Die FANN-Erweiterung muss in PHP kompiliert und aktiviert sein, damit diese Funktion zur Verfügung steht. Ab PHP 8.0 wurde die FANN-Erweiterung aus dem offiziellen PECL-Kern entfernt und steht nur noch als externe Erweiterung bereit.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ann Pflicht | resource | Eine gültige FANN-Ressource, die mit Funktionen wie fann_create_standard erstellt wurde. |
Rückgabewert
false bei einem Fehler (z. B. ungültige Ressource).Beispiele
Schwellenwertfaktor auslesen und ausgeben
<?php
// Neuronales Netz erstellen: 2 Eingaben, 1 versteckte Schicht mit 3 Neuronen, 1 Ausgabe
$ann = fann_create_standard(3, 2, 3, 1);
if ($ann) {
// SARPROP als Trainingsalgorithmus setzen
fann_set_training_algorithm($ann, FANN_TRAIN_SARPROP);
// Aktuellen Schwellenwertfaktor abfragen
$threshold_factor = fann_get_sarprop_step_error_threshold_factor($ann);
echo "SARPROP Schrittfehler-Schwellenwertfaktor: " . $threshold_factor . PHP_EOL;
fann_destroy($ann);
} else {
echo "Fehler beim Erstellen des neuronalen Netzes." . PHP_EOL;
}
?>
Schwellenwertfaktor setzen und anschließend prüfen
<?php
$ann = fann_create_standard(3, 2, 4, 1);
if ($ann) {
fann_set_training_algorithm($ann, FANN_TRAIN_SARPROP);
// Neuen Schwellenwertfaktor setzen
fann_set_sarprop_step_error_threshold_factor($ann, 0.25);
// Gesetzten Wert zurücklesen und verifizieren
$factor = fann_get_sarprop_step_error_threshold_factor($ann);
if (abs($factor - 0.25) < 1e-6) {
echo "Schwellenwertfaktor erfolgreich auf 0.25 gesetzt." . PHP_EOL;
} else {
echo "Unerwarteter Wert: " . $factor . PHP_EOL;
}
fann_destroy($ann);
}
?>
// Wichtig · Fallstricke
Achtung: Diese Funktion ist nur wirksam, wenn der Trainingsalgorithmus auf FANN_TRAIN_SARPROP gesetzt ist. Bei anderen Algorithmen wie FANN_TRAIN_RPROP oder FANN_TRAIN_BACKPROP hat der Parameter keine Auswirkung auf das Training.
Die FANN-PHP-Erweiterung ist ab PHP 8.0 nicht mehr offiziell im PECL-Verzeichnis gepflegt. Für neue Projekte sollte geprüft werden, ob eine alternative Bibliothek oder eine native PHP-ML-Lösung besser geeignet ist.