PyBrain - 如何根据测试数据验证我训练有素的网络?

时间:2013-05-19 17:00:32

标签: python machine-learning artificial-intelligence classification pybrain

所以我在PyBrain中有一个ClassificationDataSet,我已经使用适当的数据进行了训练。即,输入如下:

trainSet.addSample([0,0,0,0],[1])
trainSet.addSample([0,0,0,1],[0])
trainSet.addSample([0,0,1,0],[0])
trainSet.addSample([0,0,1,1],[1])
trainSet.addSample([0,1,0,0],[0])
trainSet.addSample([0,1,0,1],[1])
trainSet.addSample([0,1,1,0],[1])
trainSet.addSample([0,1,1,1],[0])
trainSet.addSample([1,0,0,0],[0])
trainSet.addSample([1,0,0,1],[1])

模式很简单。如果偶数为1,则输出应为1,否则为0.我想运行以下输入:

[1,0,0,1],[1]
[1,1,0,1],[0]
[1,0,1,1],[0]
[1,0,1,0],[1]

并查看神经网络是否会识别该模式。如前所述,我已经训练过网络。如何根据上面的输入验证它?

谢谢你的时间!

1 个答案:

答案 0 :(得分:5)

您首先必须create a networktrain it on your dataset

然后你必须使用activate从输入中获取结果并测试它是否与所需的输出相匹配。

一种简单的方法是:

testOutput = { [1,0,0,1] : [1], [1,1,0,1] : [0], [1,0,1,1]:[0], [1,0,1,0]:[1] }

for input, expectedOutput in testInput.items():
    output = net.activate(input)
    if output != expectedOutput:
        print "{} didn't match the desired output." 
        print "Expected {}, got {}".format(input, expectedOutput, output)