Start · Sprachen · PHP · Referenz · fann_save_train

fann_save_train

Funktion

Speichert eine FANN-Trainingsstruktur in eine Datei, sodass sie später mit <code>fann_read_train_from_file()</code> wieder geladen werden kann.

Kategorie: misc

Signatur

fann_save_train(resource $data, string $file_name): bool

Beschreibung

fann_save_train() schreibt die in einer FANN-Trainingsressource enthaltenen Trainingsdaten (Eingabe- und Ausgabemuster) in eine Textdatei im FANN-eigenen Format. Damit können aufwendig vorbereitete Datensätze persistiert und bei Bedarf wiederverwendet werden, ohne sie neu erzeugen zu müssen.

Das gespeicherte Format ist eine einfache Textdatei, deren erste Zeile die Anzahl der Muster sowie die Dimension von Ein- und Ausgabe enthält, gefolgt von je einem Muster pro Zeilengruppe. Die Datei lässt sich direkt mit einem Texteditor inspizieren und manuell anpassen.

Der typische Einsatz ist die Trennung von Datenvorbereitung und Training: Trainingsdaten werden einmalig aufbereitet und gespeichert, sodass Trainingsläufe jederzeit reproduzierbar wiederholt werden können. Dies erleichtert außerdem das Weitergeben von Benchmarks oder das Übertragen von Datensätzen zwischen Systemen.

Die Funktion gehört zur FANN-Extension (Fast Artificial Neural Network Library) und erfordert, dass PHP mit dieser Extension kompiliert wurde.

Parameter

Name Typ Default Beschreibung
$data Pflicht resource Eine FANN-Trainingsressource, wie sie z. B. von fann_read_train_from_file() oder fann_create_train_from_callback() zurückgegeben wird.
$file_name Pflicht string Der Pfad zur Zieldatei, in die die Trainingsdaten gespeichert werden sollen. Die Datei wird erstellt oder überschrieben.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn die Trainingsdaten erfolgreich gespeichert wurden, andernfalls false.

Beispiele

Trainingsdaten aus Datei laden, bearbeiten und wieder speichern

<?php
// Vorhandene Trainingsdaten laden
$train_data = fann_read_train_from_file('xor.data');

if ($train_data === false) {
    die('Trainingsdaten konnten nicht geladen werden.');
}

// Daten ggf. mischen (Shuffle)
fann_shuffle_train_data($train_data);

// Modifizierte Trainingsdaten in neue Datei speichern
$result = fann_save_train($train_data, 'xor_shuffled.data');

if ($result) {
    echo 'Trainingsdaten erfolgreich gespeichert.' . PHP_EOL;
} else {
    echo 'Fehler beim Speichern der Trainingsdaten.' . PHP_EOL;
}

// Ressource freigeben
fann_destroy_train($train_data);
Trainingsdaten erfolgreich gespeichert.

Trainingsdaten per Callback erzeugen und persistieren

<?php
// XOR-Trainingsdaten programmatisch erzeugen
$num_data   = 4;
$num_input  = 2;
$num_output = 1;

$train_data = fann_create_train_from_callback(
    $num_data,
    $num_input,
    $num_output,
    function (int $num, int $num_in, int $num_out): array {
        $patterns = [
            [[0, 0], [0]],
            [[0, 1], [1]],
            [[1, 0], [1]],
            [[1, 1], [0]],
        ];
        return $patterns[$num];
    }
);

if ($train_data !== false) {
    if (fann_save_train($train_data, 'xor_generated.data')) {
        echo 'Generierte Trainingsdaten gespeichert.' . PHP_EOL;
    }
    fann_destroy_train($train_data);
}
Generierte Trainingsdaten gespeichert.

// Wichtig · Fallstricke

Berechtigungen: Der PHP-Prozess benötigt Schreibrechte auf das Zielverzeichnis. Falls die Datei bereits existiert, wird sie ohne Warnung überschrieben — stellen Sie sicher, dass keine wichtigen Daten verloren gehen.

Ressourcenverwaltung: Die Trainingsressource sollte nach der Arbeit stets mit fann_destroy_train() freigegeben werden, um Speicherlecks zu vermeiden.

Verfügbarkeit: Die FANN-Extension ist nicht standardmäßig in PHP enthalten. Sie muss separat installiert oder kompiliert werden (PECL-Paket fann). Prüfen Sie die Verfügbarkeit mit extension_loaded('fann').