Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 属性错误:模块'__主&';没有属性';抽取器的平均字长';_Python_Python 3.x_Flask_Scikit Learn_Pipeline - Fatal编程技术网

Python 属性错误:模块'__主&';没有属性';抽取器的平均字长';

Python 属性错误:模块'__主&';没有属性';抽取器的平均字长';,python,python-3.x,flask,scikit-learn,pipeline,Python,Python 3.x,Flask,Scikit Learn,Pipeline,我已经在我的管道代码中创建了一个自定义transformer类AverageWordLengthExtractor,并在成功运行后保存了模型。现在,当我尝试使用flask应用程序加载模型时,它给出了AttributeError:module'\uuuu main\uuuu'没有属性“AverageWordLengthExtractor” 成功运行并保存模型的管道代码 自定义类 保存模型 上述代码成功运行 现在,我正在尝试使用flask加载模型 app = Flask(__name__) ....

我已经在我的管道代码中创建了一个自定义transformer类
AverageWordLengthExtractor
,并在成功运行后保存了模型。现在,当我尝试使用flask应用程序加载模型时,它给出了
AttributeError:module'\uuuu main\uuuu'没有属性“AverageWordLengthExtractor”

成功运行并保存模型的管道代码

自定义类 保存模型 上述代码成功运行

现在,我正在尝试使用flask加载模型

app = Flask(__name__)
....
....
# load model
model = joblib.load("../models/classifier2.pkl")
我试图用这个模型来预测,但它给出了错误

$ python run.py
Traceback (most recent call last):
  File "run.py", line 33, in <module>
    model = joblib.load("../models/classifier2.pkl")
  File "C:\Users\609775743\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\externals\joblib\numpy_pickle.py", line 578, in load
    obj = _unpickle(fobj, filename, mmap_mode)
  File "C:\Users\609775743\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\externals\joblib\numpy_pickle.py", line 508, in _unpickle
    obj = unpickler.load()
  File "C:\Users\609775743\AppData\Local\Continuum\anaconda3\lib\pickle.py", line 1050, in load
    dispatch[key[0]](self)
  File "C:\Users\609775743\AppData\Local\Continuum\anaconda3\lib\pickle.py", line 1338, in load_global
    klass = self.find_class(module, name)
  File "C:\Users\609775743\AppData\Local\Continuum\anaconda3\lib\pickle.py", line 1392, in find_class
    return getattr(sys.modules[module], name)
AttributeError: module '__main__' has no attribute 'AverageWordLengthExtractor'
$python run.py
回溯(最近一次呼叫最后一次):
文件“run.py”,第33行,在
model=joblib.load(“../models/classifier2.pkl”)
文件“C:\Users\609775743\AppData\Local\Continuum\anaconda3\lib\site packages\sklearn\externals\joblib\numpy\u pickle.py”,第578行,已加载
obj=_unpickle(fobj,文件名,mmap_模式)
文件“C:\Users\609775743\AppData\Local\Continuum\anaconda3\lib\site packages\sklearn\externals\joblib\numpy\u pickle.py”,第508行,在\u unpickle中
obj=取消勾选器加载()
文件“C:\Users\609775743\AppData\Local\Continuum\anaconda3\lib\pickle.py”,第1050行,已加载
分派[键[0]](自身)
文件“C:\Users\609775743\AppData\Local\Continuum\anaconda3\lib\pickle.py”,第1338行,在load\u global中
klass=self.find_类(模块,名称)
文件“C:\Users\609775743\AppData\Local\Continuum\anaconda3\lib\pickle.py”,第1392行,在find\u类中
返回getattr(sys.modules[module],name)
AttributeError:模块“\uuuu main\uuuuuu”没有属性“AverageWordLengthExtractor”

注意:代码在没有自定义类的情况下可以正常工作。

您是否在flask应用程序中导入了类
AverageWordLengthExtractor
? e、 g


average\u word\u length\u extractor
是一个Python文件,您的
average wordlength extractor
类位于该文件中。在这种情况下:
average\u word\u length\u extractor.py

您是否已在flask应用程序中导入类
average wordlength extractor
? e、 g

average\u word\u length\u extractor
是一个Python文件,您的
average wordlength extractor
类位于该文件中。在这种情况下:
average\u word\u length\u extractor.py

app = Flask(__name__)
....
....
# load model
model = joblib.load("../models/classifier2.pkl")
$ python run.py
Traceback (most recent call last):
  File "run.py", line 33, in <module>
    model = joblib.load("../models/classifier2.pkl")
  File "C:\Users\609775743\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\externals\joblib\numpy_pickle.py", line 578, in load
    obj = _unpickle(fobj, filename, mmap_mode)
  File "C:\Users\609775743\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\externals\joblib\numpy_pickle.py", line 508, in _unpickle
    obj = unpickler.load()
  File "C:\Users\609775743\AppData\Local\Continuum\anaconda3\lib\pickle.py", line 1050, in load
    dispatch[key[0]](self)
  File "C:\Users\609775743\AppData\Local\Continuum\anaconda3\lib\pickle.py", line 1338, in load_global
    klass = self.find_class(module, name)
  File "C:\Users\609775743\AppData\Local\Continuum\anaconda3\lib\pickle.py", line 1392, in find_class
    return getattr(sys.modules[module], name)
AttributeError: module '__main__' has no attribute 'AverageWordLengthExtractor'
import joblib
from average_word_length_extractor import AverageWordLengthExtractor
app = Flask(__name__)
# ...
# ...
# load model
model = joblib.load("../models/classifier2.pkl")