Python Pybrain神经网络:\ u转换为无任何错误

Python Pybrain神经网络:\ u转换为无任何错误,python,machine-learning,pybrain,Python,Machine Learning,Pybrain,我是Pybrain的新手,正在尝试建立一个神经网络。首先,我发现: 我尝试了该线程的公认答案中描述的解决方法。虽然它看起来有效,但现在给了我一个新的错误。以下是我的代码的相关部分: 将文件读入分类数据集中的部分。3个输入属性,2个类,拆分读取数组,前3列为“输入”,最后一列为“目标”: ds = ClassificationDataSet(inp=3, target=1, nb_classes=2) tf = open('datafile.txt') a = np.loadtxt(tf) a

我是Pybrain的新手,正在尝试建立一个神经网络。首先,我发现:

我尝试了该线程的公认答案中描述的解决方法。虽然它看起来有效,但现在给了我一个新的错误。以下是我的代码的相关部分:

将文件读入分类数据集中的部分。3个输入属性,2个类,拆分读取数组,前3列为“输入”,最后一列为“目标”:

ds = ClassificationDataSet(inp=3, target=1, nb_classes=2)
tf = open('datafile.txt')
a = np.loadtxt(tf) 
a = np.hsplit(a, (3,4))
ds.setField('input', a[0])
ds.setField('target', a[1])
构建简单网络的部分,pybrain的标准:

inLayer = SigmoidLayer(3)
hiddenLayer = SigmoidLayer(5)
outLayer = SigmoidLayer(2)

fnn.addInputModule(inLayer)
fnn.addModule(hiddenLayer)
fnn.addOutputModule(outLayer)

in_to_hidden = FullConnection(inLayer, hiddenLayer)
hidden_to_out = FullConnection(hiddenLayer, outLayer)

fnn.addConnection(in_to_hidden)
fnn.addConnection(hidden_to_out)

fnn.sortModules()
这是解决方法,如上所述:

tstdata_temp, trndata_temp = ds.splitWithProportion(0.25)

tstdata = ClassificationDataSet(3, target=1, nb_classes=2)
for n in xrange(0, tstdata_temp.getLength()):
     tstdata.addSample( tstdata_temp.getSample(n)[0], tstdata_temp.getSample(n)[1] )

trndata = ClassificationDataSet(3, target=1, nb_classes=2)
for n in xrange(0, trndata_temp.getLength()):
     trndata.addSample( trndata_temp.getSample(n)[0], trndata_temp.getSample(n)[1] )

trndata._convertToOneOfMany()
tstdata._convertToOneOfMany()
这是我在第一行中遇到的错误:

IndexError: index 2 is out of bounds for axis 1 with size 2

我不知道“target”字段元素的值是多少,但我在使用_convertToOneOfMany()时遇到了相同的错误,因为类标签从1开始,而不是从0开始

_convertToOneOfMany()将数据集的“target”字段从0、1、2等大小为[n_samples,1]的类标签数组转换为100、010、001等大小为[n_samples,n_classes]的标签数组(即:0->100、1->010和2->001)。因此,如果您有3个标记为1、2和3的类,那么convertToOneOfMany()将执行1->010、2->001、3->错误

此函数的代码如下:在第144行,类标签(oldtarg[i])用作newtarg的列索引

IndexError: index 2 is out of bounds for axis 1 with size 2