Signatur
Beschreibung
fann_get_total_connections() ist Teil der PHP-FANN-Erweiterung (Fast Artificial Neural Network) und liefert die Gesamtzahl aller gewichteten Verbindungen im angegebenen neuronalen Netzwerk. Jede Verbindung zwischen zwei Neuronen (inklusive der Bias-Verbindungen) wird dabei gezählt.
Diese Funktion ist nützlich, um die Komplexität eines Netzwerks einzuschätzen. Je mehr Verbindungen ein Netzwerk besitzt, desto mehr Parameter müssen beim Training optimiert werden und desto mehr Speicher wird benötigt. Vor allem bei großen Netzwerken hilft diese Funktion dabei, die Architektur zu überwachen und ggf. zu vereinfachen.
Typische Einsatzgebiete sind das Debugging der Netzwerkstruktur, Logging während des Trainings sowie der Vergleich verschiedener Netzwerktopologien hinsichtlich ihrer Größe und Komplexität.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ann Pflicht | resource | Eine FANN-Netzwerk-Ressource, die zuvor mit Funktionen wie fann_create_standard() oder fann_create_from_file() erstellt wurde. |
Rückgabewert
Beispiele
Verbindungsanzahl eines einfachen Netzwerks ausgeben
<?php
// Netzwerk mit 3 Schichten: 2 Eingaben, 3 verdeckte Neuronen, 1 Ausgabe
$ann = fann_create_standard(3, 2, 3, 1);
if ($ann) {
$total = fann_get_total_connections($ann);
echo "Gesamtzahl der Verbindungen: " . $total . PHP_EOL;
fann_destroy($ann);
} else {
echo "Fehler beim Erstellen des Netzwerks." . PHP_EOL;
}
?>
Vergleich zweier Netzwerktopologien
<?php
// Kleines Netzwerk
$annSmall = fann_create_standard(3, 2, 4, 1);
// Größeres Netzwerk
$annLarge = fann_create_standard(4, 2, 8, 8, 1);
if ($annSmall && $annLarge) {
$connectionsSmall = fann_get_total_connections($annSmall);
$connectionsLarge = fann_get_total_connections($annLarge);
echo "Kleines Netzwerk: " . $connectionsSmall . " Verbindungen" . PHP_EOL;
echo "Großes Netzwerk: " . $connectionsLarge . " Verbindungen" . PHP_EOL;
echo "Faktor: " . round($connectionsLarge / $connectionsSmall, 2) . "x komplexer" . PHP_EOL;
fann_destroy($annSmall);
fann_destroy($annLarge);
}
?>
// Wichtig · Fallstricke
Voraussetzung: Die FANN-Erweiterung muss installiert und aktiviert sein (pecl install fann). Sie ist nicht standardmäßig in PHP enthalten.
Die zurückgegebene Anzahl umfasst auch Bias-Verbindungen, also die Verbindungen von den Bias-Neuronen jeder Schicht zu den Neuronen der nächsten Schicht. Dies ist beim Vergleich mit manuell berechneten Erwartungswerten zu beachten.
Ressourcen sollten nach der Verwendung stets mit fann_destroy() freigegeben werden, um Speicherlecks zu vermeiden.