This commit is contained in:
Jonas Braus
2026-03-04 23:27:19 +01:00
commit d95ba0a638
6 changed files with 209 additions and 0 deletions
+49
View File
@@ -0,0 +1,49 @@
from neuron import Neuron
from connection import Connection
import random
import json
class Network():
def __init__(self):
self.layers = []
def build_layers(self, count:int, input_size:int, output_size:int, layer_size:int):
for layer in range(0, count):
self.layers.append([])
for _ in range(0, input_size if layer == 0 else output_size if layer == count - 1 else layer_size):
self.layers[layer].append(Neuron())
def _connect_layer(self, last_layer, current_layer):
for last_neuron in last_layer:
for current_neuron in current_layer:
connection = Connection(last_neuron, current_neuron)
last_neuron.connect_out(connection)
current_neuron.connect_in(connection)
def connect_layers(self):
for i in range(1, len(self.layers)):
last_layer = self.layers[i-1]
current_layer = self.layers[i]
self._connect_layer(last_layer, current_layer)
def fire(self, vec):
for l in range(0, len(self.layers)):
layer = self.layers[l]
for i in range(0, len(layer)):
neuron = layer[i]
neuron.calc(vec[i] if l == 0 else None)
output = []
for i in range(0, len(self.layers[-1])):
layer = self.layers[-1]
output.append(layer[i].value)
return output