我需要训练网络,然后逐一提供测试数据。是否包含一些示例或文档?
为了实现这一目标,我对受过训练的网络进行了序列化,并将其用于每个新的输入条目。
问题是,我从_convertToOneOfMany
崩溃了,甚至我理解它的目的(来自here)我不明白它是如何起作用的。
它的行为对我来说不是确定性的。它必须以某种方式解释类和标签,并且必须有一些我缺少的要求。它适用于整个数据集,但如果我只是随机行,那就太疯狂了。
Traceback (most recent call last):
File "ffn_iris.py", line 29, in <module>
tstdata._convertToOneOfMany()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PyBrain-0.3-py2.6.egg/pybrain/datasets/classification.py", line 142, in _convertToOneOfMany
newtarg[i, int(oldtarg[i])] = bounds[1]
IndexError: index (2) out of range (0<=index<1) in dimension 1
编辑: 更确切地说,让我告诉你我在做什么:我想为互联网上最着名的NN例子训练网络;) - Iris Dataset。
就是这样:
5.1,3.5,1.4,0.2,0
4.9,3.0,1.4,0.2,0
4.7,3.2,1.3,0.2,0
4.6,3.1,1.5,0.2,0
etc...
班级的最后一个零。整个数据集包含60行。 20为20,20为1和20为2。
我用数据和构建数据集读取文件:
alldata = ClassificationDataSet(4, class_labels=['Iris-setosa',
'Iris-versicolor',
'Iris-virginica'])
--- loop here ---
alldata.addSample(line[0:4], line[4])
--- create testing and training sets ---
tstdata, trndata = alldata.splitWithProportion(0.7)
--- converted matrixes ---
trndata._convertToOneOfMany()
tstdata._convertToOneOfMany()
--- not important, just for completeness ----
fnn = buildNetwork(trndata.indim, 10, trndata.outdim, outclass=SoftmaxLayer)
trainer = BackpropTrainer(fnn, dataset=trndata,
momentum=0.01, verbose=True,
weightdecay=0.01)
我的问题与_convertToOneOfMany()
有关。当数据集或数据文件仅包含几个条目(不是60个,分为三个类)时,它会从问题开头出现异常崩溃。
崩溃数据集的示例:
6.5,3.0,5.2,2.0,1
6.5,3.0,5.2,2.0,1
6.2,3.4,5.4,2.3,2
6.5,3.0,5.2,2.0,0
工作的例子:
6.5,3.0,5.2,2.0,1
6.2,3.4,5.4,2.3,2
6.5,3.0,5.2,2.0,0
如何将convertToOneOfMany()
连接到数据集中的条目数或一个类子集的大小?一行条目也崩溃了..
答案 0 :(得分:0)
如果您粘贴更多代码可能会更好。关于您的问题,请参阅他们的文档:http://pybrain.org/docs/quickstart/network.html 基本上是这个命令:net.activate([2,1]) 在这种情况下,网络有2个输入,他/她输入值2和1 我建议你浏览他们的文档