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
+32
View File
@@ -0,0 +1,32 @@
from network import Network
import json
import random
class Trainer:
def __init__(self, network: Network, train_file):
self.network = network
with open(train_file, "r") as file:
f_data = file.read()
self.data = json.loads(f_data)
def adjust(self, check_vec, layer_idx):
layer = self.network.layers[layer_idx]
for i, neuron in enumerate(layer):
error = check_vec[i] - neuron.value
neuron.adjust(error)
def train(self, iters):
for i in range(0, iters):
print(f"Train {(i / iters) * 100}%")
sample = random.choice(self.data)
in_vec = sample[0]
check_vec = sample[1]
self.network.fire(in_vec)
self.adjust(check_vec, len(self.network.layers) - 1)