init
This commit is contained in:
+49
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user