Signatur
Beschreibung
fann_reset_MSE setzt den intern gespeicherten mittleren quadratischen Fehler (Mean Squared Error, MSE) eines neuronalen Netzes, das mit der FANN-Bibliothek (Fast Artificial Neural Network) erstellt wurde, auf den Ausgangswert zurück. Gleichzeitig werden die Zähler für Bit-Fehler (bit_fail) zurückgesetzt.
Diese Funktion ist nützlich, wenn man den MSE-Verlauf zwischen verschiedenen Trainingsphasen oder Testläufen klar trennen möchte. Ohne ein explizites Zurücksetzen akkumuliert FANN die Fehlerwerte über alle bisherigen Vorwärtsdurchläufe (fann_run, fann_test), was den ausgelesenen MSE verzerren würde.
Typischerweise wird fann_reset_MSE direkt vor einer manuellen Testschleife aufgerufen, in der jeder Eingabevektor einzeln über fann_test geprüft und anschließend der akkumulierte MSE mit fann_get_MSE abgelesen wird.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ann Pflicht | resource | Eine FANN-Netzwerk-Ressource, wie sie von fann_create_standard, fann_create_from_file o. Ä. zurückgegeben wird. |
Rückgabewert
true bei Erfolg zurück. Bei einem ungültigen Netzwerk-Handle oder einem internen Fehler wird false zurückgegeben.Beispiele
MSE nach manuellem Testlauf auslesen
<?php
// Netzwerk laden und Testdaten vorbereiten
$ann = fann_create_from_file('mein_netz.net');
$testDaten = [
[[0.0, 0.0], [0.0]],
[[0.0, 1.0], [1.0]],
[[1.0, 0.0], [1.0]],
[[1.0, 1.0], [0.0]],
];
// MSE vor dem Testlauf zurücksetzen
fann_reset_MSE($ann);
foreach ($testDaten as [$eingabe, $erwartet]) {
fann_test($ann, $eingabe, $erwartet);
}
$mse = fann_get_MSE($ann);
echo 'MSE nach Testlauf: ' . $mse . PHP_EOL;
fann_destroy($ann);
MSE zwischen zwei Trainings-Epochen trennen
<?php
$ann = fann_create_from_file('xor_netz.net');
$trainingsDaten = fann_read_train_from_file('xor.data');
for ($epoche = 1; $epoche <= 3; $epoche++) {
fann_reset_MSE($ann);
fann_train_epoch($ann, $trainingsDaten);
$mse = fann_get_MSE($ann);
echo "Epoche {$epoche}: MSE = {$mse}" . PHP_EOL;
}
fann_destroy_train($trainingsDaten);
fann_destroy($ann);
// Wichtig · Fallstricke
Achtung: Die FANN-Extension für PHP (fann) muss separat installiert sein und ist nicht Bestandteil des PHP-Kerns. Auf PECL unter dem Namen fann verfügbar. Ohne diese Extension führt der Aufruf zu einem schwerwiegenden Fehler.
Beim Einsatz von fann_train_on_data oder fann_cascadetrain_on_data wird der MSE intern ohnehin vor jedem Callback zurückgesetzt; fann_reset_MSE ist daher vor allem bei manuellen Schleifen mit fann_train_epoch oder fann_test relevant.