Signatur
Beschreibung
fann_get_network_type() fragt den internen Netzwerktyp einer FANN-Ressource ab. FANN (Fast Artificial Neural Network Library) unterstützt verschiedene Architekturen, die sich in der Art ihrer Verbindungen unterscheiden. Die Funktion liefert eine ganzzahlige Konstante, die angibt, um welchen Typ es sich handelt.
Die zwei häufigsten Rückgabewerte sind FANN_NETTYPE_LAYER (Standard-Schichtnetzwerk, bei dem jede Schicht nur mit der nächsten verbunden ist) und FANN_NETTYPE_SHORTCUT (Netzwerk mit Abkürzungsverbindungen, bei dem Neuronen auch mit weiter entfernten Schichten verbunden sein können). Dieser Unterschied ist besonders relevant, wenn ein gespeichertes Netz geladen und seine Architektur überprüft werden soll.
Die Funktion ist nützlich, um vor dem Training oder vor der Inferenz sicherzustellen, dass das geladene Netz dem erwarteten Typ entspricht. So lassen sich Konfigurationsfehler frühzeitig erkennen und abfangen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ann Pflicht | resource | Eine gültige FANN-Netzwerk-Ressource, die z. B. mit fann_create_standard(), fann_create_shortcut() oder fann_create_from_file() erzeugt wurde. |
Rückgabewert
FANN_NETTYPE_LAYER (0) für ein Standard-Schichtnetzwerk und FANN_NETTYPE_SHORTCUT (1) für ein Netzwerk mit Abkürzungsverbindungen. Bei einem Fehler (ungültige Ressource) wird false zurückgegeben.Beispiele
Netzwerktyp eines Standard-Netzwerks prüfen
<?php
// Erstellt ein einfaches dreischichtiges Netzwerk: 2 Eingaben, 3 verdeckte, 1 Ausgabe
$ann = fann_create_standard(3, 2, 3, 1);
if ($ann) {
$type = fann_get_network_type($ann);
if ($type === FANN_NETTYPE_LAYER) {
echo "Netzwerktyp: Standard-Schichtnetzwerk (FANN_NETTYPE_LAYER)" . PHP_EOL;
} elseif ($type === FANN_NETTYPE_SHORTCUT) {
echo "Netzwerktyp: Shortcut-Netzwerk (FANN_NETTYPE_SHORTCUT)" . PHP_EOL;
} else {
echo "Unbekannter Netzwerktyp: " . $type . PHP_EOL;
}
fann_destroy($ann);
} else {
echo "Fehler beim Erstellen des Netzwerks." . PHP_EOL;
}
?>
Netzwerktyp eines Shortcut-Netzwerks überprüfen
<?php
// Erstellt ein Shortcut-Netzwerk: 2 Eingaben, 4 verdeckte, 1 Ausgabe
$ann = fann_create_shortcut(3, 2, 4, 1);
if ($ann) {
$type = fann_get_network_type($ann);
switch ($type) {
case FANN_NETTYPE_LAYER:
echo "Typ: Schichtnetzwerk" . PHP_EOL;
break;
case FANN_NETTYPE_SHORTCUT:
echo "Typ: Shortcut-Netzwerk" . PHP_EOL;
break;
default:
echo "Typ: unbekannt (" . $type . ")" . PHP_EOL;
}
fann_destroy($ann);
} else {
echo "Netzwerk konnte nicht erstellt werden." . PHP_EOL;
}
?>
// Wichtig · Fallstricke
Voraussetzung: Die FANN-Erweiterung muss installiert und in der php.ini aktiviert sein (extension=fann). Diese Erweiterung ist nicht standardmäßig in PHP enthalten und muss über PECL installiert werden.
Wird eine ungültige oder bereits zerstörte Ressource übergeben, gibt die Funktion false zurück und erzeugt eine PHP-Warnung. Eine Überprüfung der Ressource vor dem Aufruf ist daher empfehlenswert.