如何测试经过训练的神经网络来预测新输入的输出

时间:2015-05-07 03:29:44

标签: python neural-network

神经网络和py的新功能我刚开始学习。 在网上找到了这个我试图用于分类的反向传播神经网络类。

班级链接:http://arctrix.com/nas/python/bpnn.py

我向网络11添加了带有相应标记数据[0]或[1]的输入。创建一个包含11个输入,3个隐藏层和1个输出的网络。

示例:

 # Teach network XOR function

pat = [
    [[1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0], [1]],
    [[0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0], [0]],
    [[1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0], [1]],
    [[0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0], [0]]
]

# create a network with two input, two hidden, and one output nodes
n = NN(11, 3, 1)
# train it with some patterns
n.train(pat)
# test it
n.test(pat)

if __name__ == '__main__':
demo()

在网络训练后给出:

([1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0], '->', [0.9931939688547892])
([0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0], '->', [-0.015507293481101131])
([1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0], '->', [0.9907311490435106])
([0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0], '->', [-0.015507293481101131])

我的问题是:在网络培训完成后,如何使用它来预测单个输入的输出?

例如,我想预测这个新输入的标签

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

并输出例如'0.001212或0.99992323'

1 个答案:

答案 0 :(得分:0)

只需将测试数据传递给test函数:

n.test([[1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0]])