2014-01-04 7 views
0

Из любопытства я попытался написать основную нейронную сеть самостоятельно, но я столкнулся с ошибкой, когда попытался инициализировать объект.AttributeError: объект x не имеет атрибута y

class NeuralNet(object): 

    def __init__(self,layers,activication = "tanh"): 

     if activication == "sigmoid": 
      self.activication = sigmoid 
      self.activication_deriv = sigmoid_derivative 

     elif activication == "tanh": 
      self.activication = tanh 
      self.activication_deriv = tanh_deriv 

     """initializing weights with random values 
      between -0.25 and 0.25 and also adding bias unit""" 
     self.weigths = [] 
     for i in range(1,len(layers)-1): 
      self.weights.append((2*np.random((layers[i - 1] + 1, layers[i] + 1))-1)*0.25) 
     self.weights.append((2*np.random.random((layers[i] + 1, layers[i + 1]))-1)*0.25) 

Это, как я пытался инициализировать его:

nn = NeuralNet([1,2,1],"tanh") 

Ошибка:

traceback (most recent call last): 
    File "/home/a/Documents/LiClipse Workspace/machine_learning/src/sf.py", line 180, in <module> 
    single_model(train_set,labels) 
    File "/home/a/Documents/LiClipse Workspace/machine_learning/src/sf.py", line 130, in single_model 
    nn = NeuralNet([1,2,1],"tanh") 
    File "/home/a/Documents/LiClipse Workspace/machine_learning/src/neuralnetwork.py", line 41, in __init__ 
    self.weights.append((2*np.random((layers[i - 1] + 1, layers[i] + 1))-1)*0.25) 
AttributeError: 'NeuralNet' object has no attribute 'weights' 

Как вы можете видеть, что мой объект не имеет веса атрибутов , Я новичок в ориентации объектов на python, поэтому я не уверен, что я делаю неправильно здесь. Я попытался изучить другие реализации нейронных сетей и в похожие вопросы с stackoverflow, но я не смог получить от них решение.

+1

Кроме того: «активация» -> «активация». – DSM

ответ

4
self.weigths = [] 
self.weights.append(...) 

Примечание 'gths' и 'ghts.

+0

О, как смущающе ... Спасибо, что указали это! – Learner

Смежные вопросы