Joblib无法在另一个进程中加载​​保存的KNN模型AttributeError:模块'__main__'没有属性'mydist'

时间:2020-07-23 03:24:13

标签: python-3.x joblib

我使用sklearn运行了KNN回归模型,并使用joblib成功保存了该模型。我需要在不同的过程中加载它以预测新数据。我希望加载的模型也具有训练集中的所有数据(df_x),因为我需要用它来预测新数据。 当我在同一过程中加载模型时,它可以正常工作:

import pandas as pd
from sklearn.neighbors import KNeighborsRegressor
import joblib 

df_x = pd.read_csv(r'.../df_x.csv',index_col=0)
df_y = pd.read_csv(r'.../df_y.csv',index_col=0)
def mydist(x):
    return 1/(x+1)

model = KNeighborsRegressor(n_neighbors = 15,weights = mydist)
model.fit(df_x,df_y)
filename = 'knn.joblib'
joblib.dump(model, filename)
model = joblib.load(filename)

但是,当我在另一个进程中加载​​它时,会引发错误

import joblib 

filename = 'knn.joblib'
model = joblib.load(filename)

AttributeError:模块' main '没有属性'mydist'

当我用泡菜做同样的事情时,我也得到了完全一样的错误消息。我正在使用Windows 10

0 个答案:

没有答案