问答详情
源自:3-4 神经网络对数据实现分类(上)

NameError: global name 'predict' is not defined

NameError: global name 'predict' is not defined  怎么解决?

提问者:qq_雙子_04312075 2018-12-18 20:33

个回答

  • Du1in9
    2020-07-20 09:23:06

    http://img4.mukewang.com/5f14f1ed0001eb9708570682.jpg

    谢谢采纳~

  • Du1in9
    2020-07-20 09:21:29

    import numpy as npclass Perceptron(object):
        # 注释1
        def __init__(self, eta = 0.01, n_iter = 10):        self.eta = eta        self.n_iter = n_iter    def fit(self, X, y):        # 注释2
            self.w_ = np.zeros(1 + X.shape[1])        self.errors_ = []        for _ in range(self.n_iter):
                errors = 0
                # 注释3
                for xi, target in zip(X, y):
                    update = self.eta * (target - self.predict(xi))                # 注释4
                    self.w_[1:] += update * xi                self.w_[0] += update
                    errors += int(update != 0.0)                self.errors_.append(errors)    def net_input(self, X):        # 注释5
            return np.dot(X, self.w_[1:]) + self.w_[0]    def predict(self, X):        return np.where(self.net_input(X) >= 0.0, 1, -1)


  • 宦宦宦宦颖
    2018-12-24 19:46:40

    外层同级什么意思?

  • qq_雙子_04312075
    2018-12-21 16:21:41

    解决了 首先要把net_input和predict函数放到fit函数外层  和fit函数同级  还有多次出现NameError...xxx is not defined,先检查函数名有没有写错,然后出现了TypeError检查一下你的__init__函数,注意是两个下划线__  然后检查init 确保没有写成int  希望有帮助  这是我犯的一些错