我是Pybrain软件包的新手,我尝试对“polished_data”进行分类,这是一个12个对象的列表,我需要通过10个给定参数将其分类为2个不同的组,并使用一个0或1的整数来表示组a和湾
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
我该怎么办
我看到问题已经很久了,但我仍然会为了未来的用户而回答。使用train_tar作为向量时会出现错误。例如,您应该通过编写添加额外的维度
ds_train.setField( '目标',train_tar [:,np.newaxis])