NameError: global name 'predict' is not defined

来源:3-4 神经网络对数据实现分类(上)

qq_雙子_04312075

2018-12-18 20:33

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

写回答 关注

4回答

  • 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_雙子_...

    就是net_input、predict函数的缩进与fit一样 如果以上都没有解决那就重新新建一个项目 我也不清楚为什么jupyter notebook 总是报奇怪的错

    2018-12-25 15:13:06

    共 1 条回复 >

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

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

机器学习-实现简单神经网络

人工智能时代,你准备好成为抓住机遇的那百分之二吗。

66868 学习 · 182 问题

查看课程

相似问题