Я недавно закончил свой первый генетический алгоритм хазу и, естественно, стремлюсь сделать его более эффективным. Любой совет приветствуется.
Я создал его без использования каких-либо библиотек, которые специализируются на создании нейронных сетей, потому что я хочу получить глубокое понимание того, как они работают.
При этом я полностью осознаю, что функции прямой связи будет недостаточно.
Вот как работает прямая связь:
В создание агента передается массив в виде [входы, скрытые, выходы]
Это приведет к «Топологии», которая выглядит как [2,3,2], которая представляет собой сеть с 2 входами, 3 скрытыми нейронами и 2 выходами.
Затем я буду использовать циклы for для циклического прохождения топологии и создания двумерного массива словарей. Это будет выглядеть так.
[[{DICT},{DICT}],
[{DICT},{DICT},{DICT}],
[{DICT},{DICT}]]
Затем я назначу случайные значения словарям в формате:
(x_desitnation,y_destinstion):random-Val
Что, по сути, дает "адрес" в массиве, в который будет передано значение.
Моя функция обратной связи циклически перебирает каждый словарь и передает значения вперед на следующий слой.
Вполне вероятно, что написание этого в numpy повысит его эффективность?
Есть ли другие предложения, которые могут помочь моему коду работать более эффективно?
Спасибо заранее.