Как сохранить и восстановить обучение PyBrain?

Есть ли способ сохранить и восстановить обученную нейронную сеть в PyBrain, чтобы мне не приходилось переобучать ее каждый раз при запуске скрипта?


person solartic    schedule 15.05.2011    source источник


Ответы (3)


Нейронные сети PyBrain можно сохранять и загружать либо с помощью встроенного в Python модуля pickle/cPickle, либо с помощью PyBrain XML NetworkWriter.

# Using pickle

from pybrain.tools.shortcuts import buildNetwork
import pickle

net = buildNetwork(2,4,1)

fileObject = open('filename', 'w')

pickle.dump(net, fileObject)

fileObject.close()

fileObject = open('filename','r')
net = pickle.load(fileObject)

Примечание. cPickle реализован на C и поэтому должен быть намного быстрее, чем pickle. Использование в основном должно быть таким же, как и pickle, поэтому вместо этого просто импортируйте и используйте cPickle.

# Using NetworkWriter

from pybrain.tools.shortcuts import buildNetwork
from pybrain.tools.customxml.networkwriter import NetworkWriter
from pybrain.tools.customxml.networkreader import NetworkReader

net = buildNetwork(2,4,1)

NetworkWriter.writeToFile(net, 'filename.xml')
net = NetworkReader.readFrom('filename.xml') 
person solartic    schedule 15.05.2011
comment
Из отзыва: Пакет xml был переименован в сентябре 2010 г.: - person SiHa; 03.11.2016

NetworkWriter и NetworkReader отлично работают. Я заметил, что при сохранении и загрузке через pickle сеть больше не меняется через обучающие функции. Таким образом, я бы рекомендовал использовать NetworkWriter-метод.

person Jorg    schedule 28.11.2013

NetworkWriter — это то, что вам нужно. Используя Pickle, вы не можете переобучить сеть, как говорит Йорг.

Вам нужно что-то вроде этого:

from pybrain.tools.shortcuts import buildNetwork
from pybrain.tools.customxml import NetworkWriter
from pybrain.tools.customxml import NetworkReader

net = buildNetwork(4,6,1)

NetworkWriter.writeToFile(net, 'filename.xml')
net = NetworkReader.readFrom('filename.xml')
person Roberto Alcantara    schedule 07.11.2015