2011-05-15 10 views

Respuesta

43

Las redes neuronales de PyBrain pueden guardarse y cargarse utilizando python incorporado en el módulo pickle/cPickle, o utilizando el XML NetworkWriter de 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) 

Nota cPickle se implementa en C, y por lo tanto debería ser mucho más rápido que pickle. El uso debe ser, en su mayoría, igual que el pickle, así que solo importa y usa 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

De la crítica: El paquete XML fue renombrada en septiembre de 2010: https://github.com/pybrain/pybrain/commit/fc8e7a8807963e93d8331f7ffbe2745eaff3ae92 – SiHa

11

El NetworkWriter y NetworkReader trabajo grande. Me di cuenta de que al guardar y cargar a través de pickle, que la red ya no se puede cambiar a través de funciones de entrenamiento. Por lo tanto, recomendaría usar el NetworkWriter -metodo.

+3

Ver http: // stackoverflow .com/a/4336001/868679 para una solución –

2

NetworkWriter es el camino a seguir. Usando Pickle no puedes entrenar a la red como dice Jorg.

Es necesario algo como esto:

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