Принудительная инициализация нейронной сети PyBrain

У меня есть нейронная сеть, работающая в pybrain, и я достаточно доволен ее правильностью, теперь я просто хочу улучшить точность. Однако, пока я не начну экспериментировать с различными параметрами, я хочу быть уверенным, что каждый раз начинаю это исследование с одной и той же точки.

Если я правильно понимаю, PyBrain случайным образом инициализирует веса сети. Как я могу сохранить эту случайность последовательной, т. Е. Если ничего не изменится, я должен получать один и тот же результат каждый раз, когда запускаю сеть? Тогда я могу быть уверен, что любое полученное улучшение является прямым результатом изменения параметра.

Я просмотрел этот ответ, в котором рекомендуется использовать NetworkWriter, но я не думаю, что это действительно то, что мне нужно.

Я думал, что будет какой-то способ просто раздавать сеть одинаково каждый раз, когда я ее запускаю, но, возможно, я ошибаюсь.


person Philip O'Brien    schedule 20.10.2015    source источник
comment
Вы изучали код pybrain?   -  person 404pio    schedule 20.10.2015


Ответы (1)


Вы можете инициализировать веса сети, передав ей массив значений веса. Лучше всего это показано в этом ответе:

https://stackoverflow.com/a/14206213/5288735

Если вы хотите, чтобы веса имели «постоянную случайность», вы можете создать свой массив векторов веса, используя random.seed(). При правильной реализации будут генерироваться случайные значения, которые будут одинаковыми для каждого начального значения. Это позволит вашей сети иметь согласованные случайные значения веса.

person A. Dev    schedule 21.10.2015