Receiving AttributeError: объект 'tuple' не имеет атрибута 'T' - PullRequest
0 голосов
/ 20 октября 2019

Я новичок в этом сайте, так что извините, если я не делаю эту вещь правильно, но у меня есть проблема. Что я должен сделать, чтобы это исправить?

import numpy as np
X = (([0, 0, 0, 1], [0, 0, 1, 0], [0, 1, 0, 0], [1, 0, 0, 0]))    
h = (([0, 0], [0, 1], [1, 0], [1, 1]))
class NeuralNetworks(object):
    def __init__(self):
        self.InputSize = 4
        self.OutputSize = 2
        self.HiddenSize = 3

        self.w1 = np.random.randn(self.InputSize, self.HiddenSize)
        self.w2 = np.random.randn(self.HiddenSize, self.OutputSize)

    def forward(self, x):
        self.z = np.dot(x, self.w1) 
        self.z2 = self.sigmoid(self.z) 
        self.z3 = np.dot(self.z2, self.w2) 
        output = self.sigmoid(self.z3)
        return output

    def sigmoid(self, k ):
        return 1/(1 + np.exp(-k))
    def delta (self,k):
        return k*(1-k)
    def back(self, x, h, output):
       self.error = h-output 
       self.outputdelta = self.error *self.delta(output)
       self.z2error=self.outputdelta.dot(self.w2.T)
       self.z2delta = self.z2error * self.delta(self.z2)
       self.w1 += x.T.dot(self.z2delta)
       self.w2 += self.z2.T.dot(self.outputdelta)    

AttributeError: 'tuple'объект не имеет атрибута 'T'

1 Ответ

1 голос
/ 20 октября 2019

Я предполагаю, что ваши входные данные должны быть массивами NumPy. Вы передаете кортежи (указаны в скобках ()). Для этого может быть достаточно:

import numpy as np

X = np.array(([0, 0, 0, 1], [0, 0, 1, 0], [0, 1, 0, 0], [1, 0, 0, 0]))    
y = np.array(([0, 0], [0, 1], [1, 0], [1, 1]))
...