def testSteepness(self): sigmoid = Sigmoid() inp = random.random() greaterInp = inp * 1.1 value = sigmoid.evaluate(inp) greaterValue = sigmoid.evaluate(greaterInp) self.assertGreater(greaterValue, value)
def testOffset(self): offset = random.randint(0,10) steepness = random.randint(1,10) sigmoid = Sigmoid(steepness, offset) offsetValue = sigmoid.evaluate(-offset) offsetTarget = 1/2 targetRatio = offsetValue / offsetTarget self.assertLess(targetRatio, 1.1) self.assertGreater(targetRatio, 0.9)
class Neuron: def __init__(self, previousRow): self.weightedNeurons = getWeightedNeurons(previousRow) self.sigmoid = Sigmoid() def evaluate(self): sum = 0 for weightedNeuron in self.weightedNeurons: sum += weightedNeuron.evaluate() if len(self.weightedNeurons) > 0: sum /= len(self.weightedNeurons) return self.sigmoid.evaluate(sum)