2013-04-22 41 views
7

我正在利用pybrain构建一个具有6个输入维度和一个实值输出维度的网络。我使用的代码如下所示:以数组形式获取pybrain预测的输出

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

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

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

这里火车类型数据集 我想()作为numpy的阵列trainer.testOnData作出的预测。我能够查看预测的结果以及错误,但我希望它作为一个数组。无论如何,这可以做到吗?

回答

4

使用网络的activate功能:

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

完整的示例:

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

(只是因为XORDataSet需要工作在目录pybrain /例子/监督/ pybrain的backprop。 )