perceptron/Perceptron.py
2017-02-10 13:51:00 +00:00

45 lines
1.2 KiB
Python

from Input import Input
class Perceptron(object):
def __init__(self):
self.inputs = {}
def print(self):
for key in self.inputs:
print(key + ":")
self.inputs[key].print()
def input(self, p_input1, p_input2):
self.inputs[0] = p_input1
self.inputs[1] = p_input2
def add_input(self, p_name, p_value, p_weight):
self.inputs[p_name] = Input(p_value, p_weight)
def set_weight(self, p_input, p_weight):
self.inputs[p_input].weight = p_weight
def _sum_inputs(self):
total = 0
for key, value in self.inputs.items():
total += value.output()
return total
def activation(self):
input = self._sum_inputs()
print("Sum of inputs = %f" % input)
if input > 0:
return 1
else:
return -1
def guess(self, p_desired, p_learning_constant):
prediction = float(self.activation())
error = p_desired - prediction
for key in self.inputs:
self.inputs[key].weight += error * self.inputs[key].value * p_learning_constant
return error