Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.11 KB | None | 0 0
  1. class Neuron:
  2.  
  3.     def __init__(self, size):
  4.         self.bias = 0.0
  5.         self.spin = 1.0
  6.  
  7.         self.weights = np.zeros(size)
  8.  
  9.     def updateSpin(spins):
  10.         for i in range(len(spins)):
  11.             value = self.weights[i] * spins[i] + self.bias
  12.  
  13.         oldSpin = self.spin
  14.  
  15.         # if value >= 0:
  16.         #     self.spin = 1.0
  17.         # else:
  18.         #     self.spin = -1.0
  19.  
  20.         self.spin = 1 if value >= 0 else -1
  21.         return self.spin != oldSpin
  22.  
  23. class Network:
  24.     def __init__(self, size):
  25.         self.stableCount = 10000
  26.  
  27.         self.neurons = []
  28.         self.size = size
  29.  
  30.  
  31.         for i in range(self.size):
  32.             self.neurons.append(Neuron(self.size))
  33.  
  34.  
  35.     def learn(self, examples):
  36.         example = []
  37.         result = []
  38.  
  39.         for e in examples:
  40.             for i in range(len(e)):
  41.                 result.append(np.multiply(e[i], e))
  42.  
  43.         for i, row in enumerate(result):
  44.             self.neurons[i].weights = row
  45.  
  46. examples = [
  47.     [1, 2, 3, 4],
  48. ]
  49.  
  50. net = Network(4)
  51. net.learn(examples)
  52.  
  53. for neuron in net.neurons:
  54.     print(neuron.weights)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement