Signatur
Beschreibung
fann_destroy_train() gibt den Speicher frei, der für eine FANN-Trainingsdaten-Ressource (resource) reserviert wurde. Sie sollte aufgerufen werden, sobald Trainingsdaten nicht mehr benötigt werden, um Speicherlecks zu vermeiden.
Trainingsdaten-Ressourcen werden typischerweise mit Funktionen wie fann_read_train_from_file() oder fann_create_train_from_callback() erstellt. Da PHP selbst diese externen Ressourcen nicht automatisch vollständig bereinigt, ist der explizite Aufruf von fann_destroy_train() nach der Nutzung empfehlenswert.
Die Funktion ist Teil der FANN-Erweiterung (Fast Artificial Neural Network Library) für PHP und wird für prozedurale Aufrufe verwendet. Nach dem Aufruf ist die Ressource nicht mehr gültig und darf nicht weiterverwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $train_data Pflicht | resource | Eine gültige FANN-Trainingsdaten-Ressource, die zuvor z. B. mit fann_read_train_from_file() erstellt wurde. |
Rückgabewert
true zurück, wenn die Ressource erfolgreich freigegeben wurde, andernfalls false.Beispiele
Trainingsdaten laden, nutzen und anschließend freigeben
<?php
// FANN-Netz erstellen
$ann = fann_create_standard(3, 2, 3, 1);
// Trainingsdaten aus Datei laden
$train_data = fann_read_train_from_file('xor.data');
if ($train_data) {
// Netz mit den Trainingsdaten trainieren
fann_train_on_data($ann, $train_data, 500, 10, 0.001);
// Trainingsdaten freigeben, wenn nicht mehr benötigt
if (fann_destroy_train($train_data)) {
echo 'Trainingsdaten erfolgreich freigegeben.' . PHP_EOL;
} else {
echo 'Fehler beim Freigeben der Trainingsdaten.' . PHP_EOL;
}
}
// Netz ebenfalls freigeben
fann_destroy($ann);
Trainingsdaten nach dem Zusammenführen freigeben
<?php
// Zwei Trainingsdatensätze laden
$train1 = fann_read_train_from_file('data1.data');
$train2 = fann_read_train_from_file('data2.data');
if ($train1 && $train2) {
// Datensätze zusammenführen
$merged = fann_merge_train_data($train1, $train2);
// Originale freigeben, da nur noch merged benötigt wird
fann_destroy_train($train1);
fann_destroy_train($train2);
echo 'Ursprüngliche Trainingsdaten freigegeben.' . PHP_EOL;
// Zusammengeführte Daten verwenden ...
// Am Ende auch merged freigeben
fann_destroy_train($merged);
}
// Wichtig · Fallstricke
Achtung: Nach dem Aufruf von fann_destroy_train() ist die Ressource ungültig. Jede weitere Verwendung der freigegebenen Ressource führt zu einem Fehler oder undefiniertem Verhalten. Es empfiehlt sich, die Variable nach dem Freigeben auf null zu setzen, um versehentliche Weiterbenutzung zu verhindern.
Die Funktion steht nur zur Verfügung, wenn die FANN-Erweiterung (php_fann) installiert und aktiviert ist. Sie kann über PECL installiert werden.