Start · Sprachen · PHP · Referenz · fann_num_output_train_data

fann_num_output_train_data

Funktion

Gibt die Anzahl der Ausgaben je Trainingsmuster in einem FANN-Trainingsdatensatz zurück.

seit PHP 5.6.0 Kategorie: misc

Signatur

fann_num_output_train_data(resource $data): int|false

Beschreibung

fann_num_output_train_data() gehört zur FANN-Erweiterung (Fast Artificial Neural Network) und ermittelt, wie viele Ausgabewerte jedes einzelne Trainingsmuster im übergebenen Trainingsdatensatz besitzt. Diese Zahl entspricht der Anzahl der Ausgabe-Neuronen im zugehörigen neuronalen Netz.

Die Funktion ist nützlich, wenn man die Konsistenz zwischen Netz-Architektur und Trainingsdaten prüfen möchte, bevor das eigentliche Training gestartet wird. Stimmt die Ausgabeanzahl der Trainingsdaten nicht mit der Anzahl der Ausgabe-Neuronen des Netzes überein, schlägt das Training fehl.

Der Trainingsdatensatz muss zuvor mit Funktionen wie fann_read_train_from_file() oder fann_create_train() angelegt worden sein. Nach Verwendung sollte er mit fann_destroy_train() wieder freigegeben werden, um Speicherlecks zu vermeiden.

Parameter

Name Typ Default Beschreibung
$data Pflicht resource Eine gültige FANN-Trainingsdaten-Ressource, wie sie von fann_read_train_from_file() oder fann_create_train() zurückgegeben wird.

Rückgabewert

Typ
int|false
Beschreibung
Gibt die Anzahl der Ausgabewerte pro Trainingsmuster als int zurück. Bei einem Fehler (z. B. ungültige Ressource) wird false zurückgegeben.

Beispiele

Ausgabe-Anzahl eines Trainingsdatensatzes ermitteln

<?php
// Trainingsdatensatz aus Datei laden
$train_data = fann_read_train_from_file('xor.data');

if ($train_data) {
    $num_outputs = fann_num_output_train_data($train_data);
    echo "Anzahl der Ausgaben je Trainingsmuster: " . $num_outputs . PHP_EOL;

    // Ressource wieder freigeben
    fann_destroy_train($train_data);
} else {
    echo "Fehler beim Laden der Trainingsdaten." . PHP_EOL;
}
Anzahl der Ausgaben je Trainingsmuster: 1

Konsistenzprüfung zwischen Netz und Trainingsdaten

<?php
$train_data = fann_read_train_from_file('my_data.data');
$ann = fann_create_standard(3, 2, 4, 1);

if ($train_data && $ann) {
    $data_outputs  = fann_num_output_train_data($train_data);
    $net_outputs   = fann_get_num_output($ann);

    if ($data_outputs === $net_outputs) {
        echo "Ausgabe-Anzahl stimmt überein: " . $data_outputs . PHP_EOL;
        fann_train_on_data($ann, $train_data, 1000, 10, 0.001);
    } else {
        echo "Fehler: Netz erwartet {$net_outputs} Ausgaben, "
           . "Trainingsdaten liefern aber {$data_outputs}." . PHP_EOL;
    }

    fann_destroy($ann);
    fann_destroy_train($train_data);
}
Ausgabe-Anzahl stimmt überein: 1

// Wichtig · Fallstricke

Die Funktion steht nur zur Verfügung, wenn die FANN-Erweiterung (php_fann) installiert und aktiviert ist. Sie ist nicht Teil der Standard-PHP-Distribution. Unter Linux kann sie über PECL installiert werden (pecl install fann).

Wird eine ungültige oder bereits freigegebene Ressource übergeben, gibt die Funktion false zurück und erzeugt einen PHP-Fehler. Daher sollte stets geprüft werden, ob die Ressource korrekt erstellt wurde, bevor sie übergeben wird.