import math
import random
def dot_product(v1, v2):
return sum(x*y for x, y in zip(v1, v2))
def vector_add(v1, v2):
return [x+y for x, y in zip(v1, v2)]
def scalar_vector_product(scalar, vector):
return [scalar * x for x in vector]
def matrix_vector_product(matrix, vector):
return [dot_product(row, vector) for row in matrix]
def transpose(matrix):
return list(map(list, zip(*matrix)))
def output(ans):
a=int(ans*100+0.5)
print('%.2f' % (a/100))
class NeuralNet(object):
def __init__(self):
self.synaptic_weights = [0.5] * 6
def __sigmoid(self, x):
return 1 / (1 + math.exp(-x))
def __sigmoid_derivative(self, x):
return x * (1 - x)
def train(self, inputs, outputs, training_iterations):
for iteration in range(training_iterations):
output = self.learn(inputs)
error = [o - out for o, out in zip(outputs, output)]
adjustments = []
fo