如何保存和恢复PyBrain培训?

sol*_*tic 33 pybrain

有没有办法在PyBrain中保存和恢复经过训练的神经网络,这样我每次运行脚本时都不必重新训练它?

sol*_*tic 45

可以使用python内置的pickle/cPickle模块或使用PyBrain的XML NetworkWriter来保存和加载PyBrain的神经网络.

# 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)
Run Code Online (Sandbox Code Playgroud)

注意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') 
Run Code Online (Sandbox Code Playgroud)


小智 11

NetworkWriterNetworkReader工作带来极大.我注意到,在保存和加载后pickle,网络不再可以通过培训功能进行更改.因此,我建议使用NetworkWriter-method.