Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Neuron:
- def __init__(self, size):
- self.bias = 0.0
- self.spin = 1.0
- self.weights = np.zeros(size)
- def updateSpin(spins):
- for i in range(len(spins)):
- value = self.weights[i] * spins[i] + self.bias
- oldSpin = self.spin
- # if value >= 0:
- # self.spin = 1.0
- # else:
- # self.spin = -1.0
- self.spin = 1 if value >= 0 else -1
- return self.spin != oldSpin
- class Network:
- def __init__(self, size):
- self.stableCount = 10000
- self.neurons = []
- self.size = size
- for i in range(self.size):
- self.neurons.append(Neuron(self.size))
- def learn(self, examples):
- example = []
- result = []
- for e in examples:
- for i in range(len(e)):
- result.append(np.multiply(e[i], e))
- for i, row in enumerate(result):
- self.neurons[i].weights = row
- examples = [
- [1, 2, 3, 4],
- ]
- net = Network(4)
- net.learn(examples)
- for neuron in net.neurons:
- print(neuron.weights)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement