Я пытаюсь войти в Neural Networks и хотел протестировать некоторый код из видео, которое я смотрю, но я продолжаю получать сообщение об ошибке «Объект Neural_Network не имеет атрибута w1», и я не могу понять это , Я прошел через многие связанные стековые потоки, но они, похоже, не отвечают на этот вопрос, и, поскольку я раньше не занимался объектно-ориентированным программированием на python, я не понимаю, что происходит.
Когда я просматривал код, я подумал, что self.w1 устанавливается как локальная переменная, поэтому я попытался создать его экземпляр и установить как глобальную переменную над объявлением конструктора, но это не сработало.
import numpy as np
class Neural_Network(object):
def _init_(self):
self.inputLayerSize = 2
self.outputLayerSize = 1
self.hiddenLayerSize = 3
self.w1 = np.random.randn(self.inputLayerSize, self.hiddenLayerSize)
self.w2 = np.random.randn(self.hiddenLayerSize, self.outputLayerSize)
def forward(self, x):
self.z2= np.dot(x, self.w1)
self.a2 = self.sigmoid(self.layer1)
self.z3 = np.dot(self.a2,self.w2)
yhat = self.sigmoid(self.z3)
return yhat
def sigmoid(self, x):
return 1 / (1 + np.exp(-x))
x = np.array(([3,5],[5,1],[10,2]),dtype=float)
y = np.array((([75],[82],[93])),dtype=float)
n1 = Neural_Network()
yhat = n1.forward(x)
print(yhat)
Код должен создавать матрицу, в которой указываются возможные оценки при заданном входном значении 'x'.
что-то вроде: x = [[2,3], [5,2]]
вывод: [[82], [93], [100]]