|
|
|
Архитектура приложения, использующего нейронные сети.
|
|||
|---|---|---|---|
|
#18+
И снова здравствуйте! Решил, давече, написать небольшую программку ее суть такова: Есть небольшая нейронная сеть, построенная на нейронах модели Ижикевича, у нее есть небольшая графическая часть ( связи и сами нейроны присутствуют).Вот ее скриншот: [img] http://i.imgur.com/5GfrAAG.png [/img] И вот код самой программы: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. Прошу сразу тапочками не кидать, хоть за такой код и очень хочется) Хотел бы спросить, не подскажите как лучше сделать такой момент: Некий поток, запускаемый отдельно от основного кода, который "смотрит" не появилось ли в коллекции HashSet intcsp элементов, если появились то мы их изучаем и рисуем что либо. Попытался написать такое сам - В public void actionPerformed(ActionEvent e) { Мы обрабатываем нажатие и переменную (j) заносим в сет intcsp.add(j); . Далее уже в методе public void paintComponent(Graphics g) { мы обрабатываем это начиная отсюда // Модуль рисования возбуждения отдельного нейрона. Но видимо после нажатия кнопки, возврата к паинткомпоненту нет, так сказать, отрисовал и забыл.. Вот хотелось бы динамический метод-поток какой нибудь создать, чтобы он вытаскивал новые значения из сета и рисовал что-нибудь, а потом это значение удалял. Кстати, с зелеными черточками, это "связи" между нейронами, получились кривоваты... Заранее огромное спасибо вам! Кто дочитал уже герой просто)) Кстати, основная часть кода взята отсюда: http://geektimes.ru/post/201220/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2015, 23:48 |
|
||
|
Архитектура приложения, использующего нейронные сети.
|
|||
|---|---|---|---|
|
#18+
Код не смотрел - слишком много. Но судя по описанию - вы можете отнаследоваться от существующего Set, добавив туда генерацию событий. Дальше в зависимости от пожеланий. В простейшем случае эти события через concurrentQueue уходят в другой поток и там обрабатываются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2015, 00:23 |
|
||
|
Архитектура приложения, использующего нейронные сети.
|
|||
|---|---|---|---|
|
#18+
chabapok, Спасибо! Но вот можно ли сделать отдельный поток и в котором еще можно рисовать? Как то создав там Graphics..Я то думал, что только в паинткомпоненте можно.. В самом сете все данные есть, их главное дорисовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2015, 00:31 |
|
||
|
Архитектура приложения, использующего нейронные сети.
|
|||
|---|---|---|---|
|
#18+
Sergeyyy, SwingWorker вам поможет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2015, 11:03 |
|
||
|
Архитектура приложения, использующего нейронные сети.
|
|||
|---|---|---|---|
|
#18+
забыл ник, Так он вроде бы параметризован двумя типами, а нам в принципе то возвращать то ничего не надо, нам дорисовать поверх картины и увсе) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2015, 12:18 |
|
||
|
Архитектура приложения, использующего нейронные сети.
|
|||
|---|---|---|---|
|
#18+
SergeyyyНекий поток, запускаемый отдельно от основного кода, который "смотрит" не появилось ли в коллекции HashSet intcsp элементов, если появились то мы их изучаем и рисуем что либо. У вас в целом не верный подход. Нужно понять что вы не управляете процессом отрисовки в Swing. Методы paint* нужно делать очень быстрыми. Так как они вызываются очень часто. Поэтому нужно все данные держать в памяти в виде некоторой готовой к отрисовке модели. А метод paint* должен очень быстро эту модель выводить в Graphics. У вас же в paintComponent куча тяжеловесной логики. Логику и представление нужно отделять. Второй момент это полная непонятка с потоком. Поток никуда не "смотрит". Поток исполняет код. То что в коллекции что-то появилось это событие. И вам нужно на это событие отреагировать. Можно самому реализовать Listener. Но рас уж речь зашла о потоках, то можно использовать ExecutorService и его очередь. Как только в очереди появляется задача, ExecutorService будит поток и выполняет код этой задачи. Нужно оно тут или нет - решать вам. Если свяжетесь с потоками, то обязательно к прочтению: https://docs.oracle.com/javase/tutorial/uiswing/concurrency/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2015, 12:35 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38950884&tid=2125471]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
162ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 505ms |

| 0 / 0 |
