Принудително инициализиране на невронната мрежа на 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