2011-05-15 177 views

回答

43

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

評分:XML包在2010年9月更名爲:https://github.com/pybrain/pybrain/commit/fc8e7a8807963e93d8331f7ffbe2745eaff3ae92 – SiHa 2016-11-03 12:53:35

11

NetworkWriterNetworkReader工作很好。我注意到在通過pickle進行保存和加載時,通過訓練功能不再可以改變網絡。因此,我會推薦使用NetworkWriter-方法。

+3

請訪問http://計算器.com/a/4336001/868679尋求解決方案 – 2014-03-31 17:54:36

2

NetworkWriter是要走的路。按照Jorg的說法,使用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')