Start · Sprachen · PHP · Referenz · fann_destroy_train

fann_destroy_train

Funktion

Gibt den für Trainingsdaten reservierten Speicher frei und zerstört die zugehörige Ressource.

seit PHP 5.0.0 Kategorie: misc

Signatur

fann_destroy_train(resource $train_data): bool

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

Typ
bool
Beschreibung
Gibt 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 erfolgreich freigegeben.

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);
}
Ursprüngliche Trainingsdaten freigegeben.

// 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.