关于属性的Python bug

时间:2018-03-10 19:17:39

标签: python jupyter-notebook

我最近编码了以下内容:

class Neural_Network(object):
def _init_(self):
    self.inputLayerSize = 2
    self.outputLayerSize = 1
    self.hiddenLayerSize = 2

    # Weights
    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.z2)
        self.z3 = np.dot(self.a2, self.W2)
        yHat = self.sigmoid(self.z3)
        return yHat

    def sigmoid(self, z):
        return 1/(1+np.exp(-z))

现在,问题在于我正在执行以下操作: -

NN = Neural_Network()

yHat = NN.forward(X)

我收到以下错误: -

  

AttributeError Traceback(最近一次调用最后一次)    in()   ----> 1 yHat = NN.forward(X = 0.9)

     

AttributeError:'Neural_Network'对象没有属性'forward'

我是Python新手,但真的有兴趣学习。你能告诉我我在这里干什么吗?

顺便说一下,我在jupyter-notebook中这样做

最佳

1 个答案:

答案 0 :(得分:2)

两个问题:

  1. 它是double a = 10.154430; printf("%d", a); //prints garbage value as expected(双下划线)而非__init__
  2. 您的_init_forward函数是在sigmoid方法而非__init__范围内定义的。
  3. 试试这个:

    class