Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2012
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.15 KB | None | 0 0
  1. STEP_FUNCTION_NEURON = 1
  2. SIGMOID_FUNCTION_NEURON = 2
  3. #layers of neurons have to be added in order from input layer to output layer
  4. neuron_count = 0
  5. class StepNeuron():
  6. def __init__(self):
  7. global neuron_count
  8. self.inputs = []
  9. self.outputs = []
  10. self.type = STEP_FUNCTION_NEURON
  11. self.activation = 1.0
  12. neuron_count +=1
  13. self.number = neuron_count
  14. print 'created neuron #',self.number
  15. def fire(self):
  16. print 'Neuron #%d fired' % self.number
  17. for synapse in self.outputs:
  18. synapse.activated = True
  19. def check_potential(self):
  20. activation = 0.0
  21. for synapse in self.inputs:
  22. if synapse.activated == True:
  23. synapse.activated = False
  24. activation += synapse.weight
  25. if activation >= self.activation:
  26. self.fire()
  27.  
  28. class Input():
  29. def __init__(self):
  30. self.type = STEP_FUNCTION_NEURON
  31. self.outputs = []
  32. self.activation = False
  33. def fire(self):
  34. print 'input fired'
  35. for synapse in self.outputs:
  36. synapse.activated = True
  37.  
  38. class Synapse():
  39. def __init__(self,fromneuron,toneuron,weight):
  40. self.fromneuron = fromneuron
  41. fromneuron.outputs += [self]
  42. self.toneuron = toneuron
  43. toneuron.inputs += [self]
  44. self.weight = weight
  45. self.activated = False
  46. #input layer
  47. i1 = Input()
  48. i2 = Input()
  49. #layer 1
  50. n1 = StepNeuron()
  51. n2 = StepNeuron()
  52. n3 = StepNeuron()
  53. n4 = StepNeuron()
  54. #layer 2
  55. n5 = StepNeuron()
  56. n6 = StepNeuron()
  57. neuron_list=[n1,n2,n3,n4,n5,n6]
  58. #synapse leaving i1
  59. s1 = Synapse(i1,n1,1.0)
  60. s2 = Synapse(i1,n2,1.0)
  61. s3 = Synapse(i1,n3,1.0)
  62. s4 = Synapse(i1,n4,1.0)
  63. #synapse leaving i2
  64. s1 = Synapse(i2,n1,1.0)
  65. s2 = Synapse(i2,n2,1.0)
  66. s3 = Synapse(i2,n3,1.0)
  67. s4 = Synapse(i2,n4,1.0)
  68. #synapse leaving n1
  69. s5 = Synapse(n1,n5,1.0)
  70. s6 = Synapse(n1,n6,1.0)
  71. #synapse leaving n2
  72. s5 = Synapse(n2,n5,1.0)
  73. s6 = Synapse(n2,n6,1.0)
  74. #synapse leaving n3
  75. s5 = Synapse(n3,n5,1.0)
  76. s6 = Synapse(n3,n6,1.0)
  77. #synapse leaving n4
  78. s5 = Synapse(n4,n5,1.0)
  79. s6 = Synapse(n4,n6,1.0)
  80.  
  81. i1.fire()
  82. for neuron in neuron_list:
  83. neuron.check_potential()
  84. for neuron in neuron_list:
  85. neuron.check_potential()
  86. i2.fire()
  87. for neuron in neuron_list:
  88. neuron.check_potential()
  89. for neuron in neuron_list:
  90. neuron.check_potential()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement