Theano:预计2,形状为1(128,)。')

时间:2016-03-16 21:01:49

标签: machine-learning theano

我试图建立一个神经网络。我已经关注了

的视频

https://www.youtube.com/watch?v=S75EdAcXHKk

我已经加载了adult.data训练集。

我现在正在接受培训,我有这些代码失败的行。

while(epocs<5):
            i = 0
            for start, end in zip(range(0, len(trX), 128), range(128, len(trX), 128)):
                print(trX.shape)
                tr = trX[start:end]
                print(tr.shape[0])
                print(tr.shape[1])
                self.cost = train(tr.reshape(tr.shape[0],tr.shape[1]), trY[start:end])
            epocs+=1

我正在收到一条错误消息:

n.training()

文件“C:\ Users \ Bjornars \ PycharmProjects \ cogs-118a \ Project \ NN \ Network.py”,第101行,培训     self.cost = train(tr.reshape(128,106),trY [start:end])   文件“C:\ Anaconda3 \ lib \ site-packages \ theano \ compile \ function_module.py”,第513行,调用     allow_downcast = s.allow_downcast)   文件“C:\ Anaconda3 \ lib \ site-packages \ theano \ tensor \ type.py”,第169行,在过滤器中     data.shape)) TypeError:('名称为“C:\ Users \ Bjornars \ PycharmProjects \ cogs-118a \ Project \ NN \ Network.py:84”的错误输入参数,索引1(从0开始)','错误的数字尺寸:预期2,形状为1(128,)。')

我发送的数组的形状是(5000,106)

--- ----解决

1 个答案:

答案 0 :(得分:0)

使用它,它预期数组不是trY中的数字

    def preprocess(self,trDmatrix,labels):
          for i in range(len(trDmatrix)):
              numbers = [0.0]*2
              numbers[int(labels[i])]= 1.0
              labels[i] = numbers
          return trDmatrix, labels