-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlayer.py
More file actions
32 lines (23 loc) · 1003 Bytes
/
layer.py
File metadata and controls
32 lines (23 loc) · 1003 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from neuron import Neuron, sig
def sep(s):
return s + ", "
class Layer:
def __init__(self, layerDim, prevLayerDim):
self.neurons = [Neuron(prevLayerDim) for i in range(layerDim)]
def __str__(self):
s = "my neurons are " + ", ".join(map(str, self.neurons)) + "\n"
return s
def getNeuronVals(self):
return [self.neurons[i].firingVal for i in range(len(self.neurons))]
def feedForward(self, input):
for i in range(len(self.neurons)):
self.neurons[i].deriveFiringVal(input)
def updateNeurons(self, parameters):
# [[w], b]...
for neuron in range(len(parameters)):
newWeights = parameters[neuron][0]
newBias = parameters[neuron][1]
self.neurons[neuron].selfUpdate(newWeights, newBias)
def randomUpdateNeurons(self, step_size):
for neuron in range(len(self.neurons)):
self.neurons[neuron].randomSelfUpdate(step_size)