【问题标题】:PyBrain - how to validate my trained network against a test data?PyBrain - 如何根据测试数据验证我训练有素的网络?
【发布时间】: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]

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

感谢您的宝贵时间!

【问题讨论】:

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


    【解决方案1】:

    您首先必须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)
    

    【讨论】:

    • .activate() 返回什么?我不断收到花车,这让我很困惑.. 需要解释一下吗?
    • 添加了文档链接(激活时);我不是 PyBrain 用户,目前正在安装这个包来做这个方法的最小测试。
    • 糟糕。我把你的数据集误认为是网络。添加了一些链接以澄清事情。
    • 嘿,非常感谢您的努力!!!我已经创建了一个网络和一个数据集并使用该数据集训练了网络.. 但是.. 我不断得到有趣的结果.. 像 [[ 0. ] [ 0.64476526] [ 0.54229964] [ 0.3103782 ]] 在我调用这些激活之后values.. 你能告诉我这些值是什么意思吗??
    • 返回的值取决于您使用的网络类型。我猜有些网络会在数据集中给出的输入之间进行某种插值。 (并且可能不会返回您提供给他们的确切数据)
    猜你喜欢
    • 2019-05-01
    • 2018-09-19
    • 2020-09-14
    • 2022-11-10
    • 2018-01-28
    • 2015-06-09
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    相关资源
    最近更新 更多