Из любопытства я попытался написать основную нейронную сеть самостоятельно, но я столкнулся с ошибкой, когда попытался инициализировать объект.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, но я не смог получить от них решение.
Кроме того: «активация» -> «активация». – DSM