RDN.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. # -*- coding: utf-8 -*-
  2. from define import *
  3. import math
  4. #import numpy
  5. def mult(Addresse,Neuronne, poids):
  6. res = Neuronne[Addresse[0]] * \
  7. Neuronne[Addresse[1]] * \
  8. Neuronne[Addresse[2]] * \
  9. Neuronne[Addresse[3]] * \
  10. Neuronne[Addresse[4]] * \
  11. Neuronne[Addresse[5]] * \
  12. Neuronne[Addresse[6]] * \
  13. Neuronne[Addresse[7]] * \
  14. Neuronne[Addresse[8]] * \
  15. Neuronne[Addresse[9]] * \
  16. Neuronne[Addresse[10]] * \
  17. Neuronne[Addresse[11]] * \
  18. Neuronne[Addresse[12]] * \
  19. Neuronne[Addresse[13]] * \
  20. Neuronne[Addresse[14]] * \
  21. Neuronne[Addresse[15]] * \
  22. Neuronne[Addresse[16]] * \
  23. Neuronne[Addresse[17]] * \
  24. Neuronne[Addresse[18]] * \
  25. Neuronne[Addresse[19]] * \
  26. Neuronne[Addresse[20]] * \
  27. Neuronne[Addresse[21]] * \
  28. Neuronne[Addresse[22]] * \
  29. Neuronne[Addresse[23]] * \
  30. Neuronne[Addresse[24]] * \
  31. Neuronne[Addresse[25]] * \
  32. Neuronne[Addresse[26]] * \
  33. Neuronne[Addresse[27]] * \
  34. Neuronne[Addresse[28]] * \
  35. Neuronne[Addresse[29]] * \
  36. Neuronne[Addresse[30]] * \
  37. poids
  38. print ("res1 : " + str(res))
  39. res = 1.7159*math.atan( 0.66666667*(res))
  40. print ("res2 : " + str(res))
  41. return res
  42. # Fonction d'initialisation du reseau de neuronne
  43. class RDN():
  44. def __init__(self,ID):
  45. self.ID = ID
  46. self.C1 = [0]*NBC1
  47. self.C2 = [0]*NBC2
  48. self.C3 = [0]*NBC3
  49. self.C4 = [0]*NBC4
  50. self.C5 = [0]*NBC5
  51. path = D_file + str(self.ID) + "/"
  52. #changer les addresse des fichier des poids avec l'ID
  53. F_add2=open(path + "Addresse2.pos","r")
  54. F_add3=open(path + "Addresse3.pos","r")
  55. F_add4=open(path + "Addresse4.pos","r")
  56. F_add5=open(path + "Addresse5.pos","r")
  57. F_Poid2=open(path + "poids2.wei","r")
  58. F_Poid3=open(path + "poids3.wei","r")
  59. F_Poid4=open(path + "poids4.wei","r")
  60. F_Poid5=open(path + "poids5.wei","r")
  61. self.add2 = []
  62. self.add3 = []
  63. self.add4 = []
  64. self.add5 = []
  65. self.poid2 = []
  66. self.poid3 = []
  67. self.poid4 = []
  68. self.poid5 = []
  69. for i in F_add2:
  70. data = i.strip('][\n').split(', ')
  71. tmp=[]
  72. for j in data:
  73. tmp.append(int(j))
  74. self.add2.append(tmp)
  75. for i in F_add3:
  76. data = i.strip('][\n').split(', ')
  77. tmp=[]
  78. for j in data:
  79. tmp.append(int(j))
  80. self.add3.append(tmp)
  81. for i in F_add4:
  82. data = i.strip('][\n').split(', ')
  83. tmp=[]
  84. for j in data:
  85. tmp.append(int(j))
  86. self.add4.append(tmp)
  87. for i in F_add5:
  88. data = i.strip('][\n').split(', ')
  89. tmp=[]
  90. for j in data:
  91. tmp.append(int(j))
  92. self.add5.append(tmp)
  93. for i in F_Poid2:
  94. self.poid2.append(float(i))
  95. for i in F_Poid3:
  96. self.poid3.append(float(i))
  97. for i in F_Poid4:
  98. self.poid4.append(float(i))
  99. for i in F_Poid5:
  100. self.poid5.append(float(i))
  101. def MiseAJourC1(self,tab):
  102. self.C1 = tab
  103. def tour(self):
  104. for i in range(len(self.C2)):
  105. self.C2[i]=mult(self.add2[i],self.C1,self.poid2[i])
  106. # ~ for i in range(len(self.C3)):
  107. # ~ self.C3[i]=mult(self.add3[i],self.C2,self.poid3[i])
  108. # ~ for i in range(len(self.C4)):
  109. # ~ self.C4[i]=mult(self.add4[i],self.C3,self.poid4[i])
  110. # ~ for i in range(len(self.C5)):
  111. # ~ self.C5[i]=mult(self.add5[i],self.C4,self.poid5[i])
  112. # ~ print (self.C5)
  113. print (self.C2[NBC2-10])
  114. return self.C5