PyBrain - 如何根据测试数据验证我训练有素的网络?
Posted
技术标签:
【中文标题】PyBrain - 如何根据测试数据验证我训练有素的网络?【英文标题】:PyBrain - how to validate my trained network against a test data? 【发布时间】:2013-05-14 06:43:47 【问题描述】:所以我在 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】:您首先必须create a network 和train 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)
【讨论】:
.activate() 返回什么?我不断收到花车,这让我很困惑.. 需要解释一下吗? 添加了文档链接(激活时);我不是 PyBrain 用户,目前正在安装这个包来做这个方法的最小测试。 糟糕。我把你的数据集误认为是网络。添加了一些链接以澄清事情。 嘿,非常感谢您的努力!!!我已经创建了一个网络和一个数据集并使用该数据集训练了网络.. 但是.. 我不断得到有趣的结果.. 像 [[ 0. ] [ 0.64476526] [ 0.54229964] [ 0.3103782 ]] 在我调用这些激活之后values.. 你能告诉我这些值是什么意思吗?? 返回的值取决于您使用的网络类型。我猜有些网络会在数据集中给出的输入之间进行某种插值。 (并且可能不会返回您提供给他们的确切数据)以上是关于PyBrain - 如何根据测试数据验证我训练有素的网络?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 PyBrain 中使用函数 normalize()?