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

use*_*832 2 python artificial-intelligence classification machine-learning 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])
Run Code Online (Sandbox Code Playgroud)

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

[1,0,0,1],[1]
[1,1,0,1],[0]
[1,0,1,1],[0]
[1,0,1,0],[1]
Run Code Online (Sandbox Code Playgroud)

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

谢谢你的时间!

hal*_*ngs 5

首先,您必须创建一个网络在数据集上进行训练.

然后,您必须使用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)
Run Code Online (Sandbox Code Playgroud)