Signatur
Beschreibung
fann_get_activation_steepness liest die Aktivierungssteilheit des angegebenen Neurons in der angegebenen Schicht eines künstlichen neuronalen Netzes aus, das mit der FANN-Bibliothek (Fast Artificial Neural Network) erstellt wurde. Die Aktivierungssteilheit beeinflusst, wie stark die Aktivierungsfunktion auf Eingabeänderungen reagiert – ein höherer Wert führt zu steileren Übergängen in der Aktivierungsfunktion.
Diese Funktion ist nützlich, wenn man die aktuellen Einstellungen eines trainierten Netzes auslesen, speichern oder zur Fehlersuche überprüfen möchte. Die Steilheit wird typischerweise mit fann_set_activation_steepness oder verwandten Funktionen gesetzt und kann schicht- oder neuronenweise variieren.
Die Schichten werden ab 1 gezählt (Schicht 0 ist die Eingabeschicht, die keine Aktivierungsfunktion hat). Neuronen werden ebenfalls ab 0 gezählt. Ungültige Kombinationen aus Schicht und Neuron führen dazu, dass false zurückgegeben wird.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ann Pflicht | resource | Eine FANN-Netz-Ressource, wie sie von fann_create_standard oder ähnlichen Funktionen erzeugt wird. |
|
| $layer Pflicht | int | Index der Schicht, deren Neuron abgefragt werden soll. Die Eingabeschicht hat den Index 0; versteckte Schichten und Ausgabeschicht folgen aufsteigend. | |
| $neuron Pflicht | int | Index des Neurons innerhalb der angegebenen Schicht, beginnend bei 0. |
Rückgabewert
float zurück. Ist die Kombination aus layer und neuron ungültig oder tritt ein Fehler auf, wird false zurückgegeben.Beispiele
Aktivierungssteilheit eines Neurons auslesen
<?php
// Netz mit 2 Eingaben, einer versteckten Schicht (3 Neuronen) und 1 Ausgabe erstellen
$ann = fann_create_standard(3, 2, 3, 1);
if ($ann) {
// Aktivierungssteilheit für alle Schichten auf 0.5 setzen
fann_set_activation_steepness_hidden($ann, 0.5);
fann_set_activation_steepness_output($ann, 0.5);
// Steilheit des ersten Neurons in der ersten versteckten Schicht (Schicht 1) auslesen
$steepness = fann_get_activation_steepness($ann, 1, 0);
if ($steepness !== false) {
echo "Aktivierungssteilheit (Schicht 1, Neuron 0): " . $steepness . PHP_EOL;
} else {
echo "Ungültige Schicht- oder Neuron-Angabe." . PHP_EOL;
}
fann_destroy($ann);
}
Steilheiten aller Neuronen einer Schicht ausgeben
<?php
$ann = fann_create_standard(3, 2, 4, 1);
if ($ann) {
fann_set_activation_steepness_hidden($ann, 0.7);
$layer = 1; // Erste versteckte Schicht
$numNeurons = 4;
echo "Aktivierungssteilheiten in Schicht $layer:" . PHP_EOL;
for ($neuron = 0; $neuron < $numNeurons; $neuron++) {
$steepness = fann_get_activation_steepness($ann, $layer, $neuron);
if ($steepness !== false) {
echo " Neuron $neuron: $steepness" . PHP_EOL;
} else {
echo " Neuron $neuron: nicht verfügbar" . PHP_EOL;
}
}
fann_destroy($ann);
}
// Wichtig · Fallstricke
Die FANN-Erweiterung muss kompiliert und aktiviert sein (--with-fann). Ab PHP 8.0 werden FANN-Ressourcen möglicherweise nicht mehr offiziell unterstützt – prüfen Sie die Verfügbarkeit der Erweiterung in Ihrer PHP-Version.
Beachten Sie, dass die Eingabeschicht (Index 0) keine Aktivierungsfunktion besitzt. Der Aufruf mit layer = 0 liefert daher in der Regel false.