Signatur
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
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;
}
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);
}
// 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.