2013-04-22 8 views
7

Sto facendo uso di pybrain per creare una rete che ha 6 dimensioni di input e una dimensione di output con valore reale. Il codice che uso è la seguente:Ottenere l'output della predizione di pybrain come array

network = buildNetwork(train.indim, 4, train.outdim) 

trainer = BackpropTrainer(network, train) 
trainer.trainOnDataset(train, 8000) 

print 'MSE train', trainer.testOnData(train, verbose = True) 

qui treno è di tipo Dataset voglio ottenere le previsioni fatte in trainer.testOnData() come una matrice NumPy. Sono in grado di visualizzare il risultato previsto insieme all'errore, ma lo voglio come un array. C'è comunque che questo può essere fatto?

risposta

4

utilizzare la funzione activate della rete:

numpy.array([network.activate(x) for x, _ in train]) 

completo esempio:

from datasets import XORDataSet 
from pybrain.tools.shortcuts import buildNetwork 
from pybrain.supervised import BackpropTrainer 
import numpy 
d = XORDataSet() 
n = buildNetwork(d.indim, 4, d.outdim, bias=True) 
t = BackpropTrainer(n, learningrate=0.01, momentum=0.99, verbose=True) 
t.trainOnDataset(d, 1000) 
t.testOnData(verbose=True) 
print numpy.array([n.activate(x) for x, _ in d]) 

(Funziona solo nella directory pybrain/examples/supervisione/backprop di pybrain perché è necessario il XORDataSet.)

Problemi correlati