23 lines
588 B
Python
23 lines
588 B
Python
import random
|
|
|
|
class Connection:
|
|
def __init__(self, in_, out_):
|
|
self.weight = random.uniform(-1.0, 1.0)
|
|
self.in_ = in_
|
|
self.out_ = out_
|
|
self.value = 0.0
|
|
|
|
def transfer(self, value:float):
|
|
self.value = value
|
|
|
|
def adjust(self, delta:float, learning_rate:float):
|
|
old_weight = self.weight
|
|
|
|
gradient = delta * self.value
|
|
self.weight += learning_rate * gradient
|
|
|
|
if self.in_ is None:
|
|
return
|
|
|
|
error_for_prev = delta * old_weight
|
|
self.in_.adjust(error_for_prev, learning_rate) |