Indexing Pybrain-如何正确使用ds_train.setField

Indexing Pybrain-如何正确使用ds_train.setField,indexing,range,pybrain,index-error,Indexing,Range,Pybrain,Index Error,我是Pybrain软件包的新手,我尝试对“抛光_数据”进行分类,这是一个包含12个对象的列表,我需要通过10个给定参数和一个表示a组和b组的0或1的整数将其分为2个不同的组 import numpy as np from sklearn import cross_validation from pybrain.tools.shortcuts import buildNetwork from pybrain.structure.modules import SigmoidLayer,Softmax

我是Pybrain软件包的新手,我尝试对“抛光_数据”进行分类,这是一个包含12个对象的列表,我需要通过10个给定参数和一个表示a组和b组的0或1的整数将其分为2个不同的组

import numpy as np
from sklearn import cross_validation
from pybrain.tools.shortcuts import buildNetwork
from pybrain.structure.modules import SigmoidLayer,SoftmaxLayer
from pybrain.datasets import SupervisedDataSet
from pybrain.supervised.trainers import BackpropTrainer

polished_data = np.load('polished_data.npy') start=time() 
train_in,w_in,train_tar,w_tar=cross_validation.train_test_split(polished_data[:,:10],polished_data[:,10],test_size=0.33) 
valid_in,test_in,valid_tar,test_tar=cross_validation.train_test_split(w_in,w_tar,test_size=0.5)
ds_train=SupervisedDataSet(50,25) 
ds_train.setField('input',train_in)
ds_train.setField('target',train_tar)
当我试着运行这段代码时,我得到了这个错误

IndexError                                Traceback (most recent call last)
<ipython-input-8-8e02f246d0af> in <module>()
      7 ds_train=SupervisedDataSet(50,25)
      8 ds_train.setField('input',train_in)
----> 9 ds_train.setField('target',train_tar)
     10 
     11 

C:\Program Files\Anaconda3\lib\pybrain\datasets\supervised.py in setField(self, label, arr, **kwargs)
     60             self.indim = self.getDimension('input')
     61         elif label == 'target':
---> 62             self.outdim = self.getDimension('target')
     63 
     64     def _provideSequences(self):

C:\Program Files\Anaconda3\lib\pybrain\datasets\dataset.py in getDimension(self, label)
    146         `label`."""
    147         try:
--> 148             dim = self.data[label].shape[1]
    149         except KeyError:
    150             raise KeyError('dataset field %s not found.' % label)

IndexError: tuple index out of range
索引器错误回溯(最近一次调用)
在()
7列车=监控数据集(50,25)
8序列设置字段(“输入”,序列输入)
---->9列车设置字段(“目标”,列车焦油)
10
11
设置字段中的C:\Program Files\Anaconda3\lib\pybrain\datasets\supervised.py(self、label、arr、**kwargs)
60 self.indim=self.getDimension('输入')
61 elif标签==“目标”:
--->62 self.outdim=self.getDimension('target')
63
64 def_提供顺序(自):
getDimension中的C:\Program Files\Anaconda3\lib\pybrain\datasets\dataset.py(self,label)
146“标签”
147试试:
-->148 dim=self.data[label].shape[1]
149除键错误外:
150 raise KeyError('未找到数据集字段%s'。%label)
索引器错误:元组索引超出范围

我该怎么办?我知道这个问题已经很老了,但为了将来的用户,我还是会回答。当你使用train_tar作为向量时,会出现错误。你应该添加一个额外的维度,例如


ds_train.setField('target',train_tar[:,np.newaxis])

我知道这个问题很老了,但为了将来的用户,我还是会回答。当使用train_tar作为向量时,会出现错误。您应该添加一个额外的维度,例如

ds_train.setField('target',train_tar[:,np.newaxis])