我有以下代码。虽然,问题很简单,但我无法弄清楚背后的原因。
以下是我的main.py:
from model_MNIST import Model
def main():
model = Model()
if __name__ == '__main__':
main()
model_MNIST.py文件如下:
# some import statements
class Model(object):
def __init__(self, input_dimensions, output_dimensions):
# some init statements
def train_on_data(self, training_data, training_labels):
N = training_labels.size
每当调用类初始化时,我得到一个输出为 name' training_labels'未定义。这阻止了程序的执行。有人能指出我可能缺少的东西吗?
Edit1:请参阅该文件的共享链接。 SharedFolder
答案 0 :(得分:1)
这是您链接中代码的摘要:
# some import statements
class Model(object):
def __init__(self, input_dimensions, output_dimensions):
# some init statements
def train_on_data(self, training_data, training_labels):
'''
Multiline comment
'''
N = training_labels.size
...
在上面的代码中,最后一行是类的一部分,而不是train_on_data
方法。
我认为最后一行(和其他人省略的)应该缩进为该方法的一部分。
答案 1 :(得分:0)
从共享代码中,我可以理解您与类和实例变量相混淆。
在函数train_on_data
中,您有一些代码,例如self.training_labels = training_labels
,但您的init
方法不包含self.training_labels
变量。
答案 2 :(得分:0)
您需要在main_MNIST.py中将此Model.train_on_data(X_train, y_train)
更改为model.train_on_data(X_train, y_train)
,简单.py文件https://pastebin.com/JZArvWC3