Files

55 lines
1.7 KiB
Python

import random
import math
class SimpleNeuron:
def __init__(self):
# Initialisiere Gewichte und Bias mit Zufallswerten zwischen -0.5 und 0.5
self.weights = [random.uniform(-0.5, 0.5) for _ in range(2)]
self.bias = random.uniform(-0.5, 0.5)
def dot(self, input_vector):
"""
Berechnet das Skalarprodukt zwischen dem Eingabevektor und den Gewichten,
fügt den Bias hinzu und gibt das Ergebnis zurück.
"""
acc = sum(i * w for i, w in zip(input_vector, self.weights))
return acc + self.bias
def process_input(self, input_vector):
"""
Verarbeitet den Eingabevektor, berechnet den Dot-Produkt,
wendet die Aktivierungsfunktion (tanh) an und gibt das Ergebnis zurück.
"""
print("**** Processing ****")
print(f"Input: {input_vector}")
print(f"Using Weights: {self.weights} and Bias: {self.bias}")
dot_product = self.dot(input_vector)
output = math.tanh(dot_product)
print(f"Output: {output}")
return output
def sense(in_neuron, signal):
"""
Diese Funktion überprüft, ob das Signal eine Liste der Länge 2 ist,
und sendet es an das Neuron zur Verarbeitung.
"""
if isinstance(signal, list) and len(signal) == 2:
output = in_neuron.process_input(signal)
print(f"Final Output: {output}")
else:
print("The Signal must be a list of length 2")
# Beispiel zur Verwendung:
if __name__ == "__main__":
# Erstelle ein Neuron
neuron = SimpleNeuron()
# Sende ein Signal (Eingabevektor) an das Neuron
test_signal = [0.5, -0.3] # Beispiel-Eingabe
sense(neuron, test_signal)