Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

PyBrain Neural Networks может быть сохранена и загружена с использованием либо 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, поэтому просто импортируйте и используйте 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') 

Ответ 2

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

Ответ 3

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

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

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')