Python 将scikit学习管道保存到文件
如何将经过培训的scikit学习管道保存到本地文件?官方文件说: 但是当试图保存管道时,我得到了一个错误。例如:Python 将scikit学习管道保存到文件,python,scikit-learn,Python,Scikit Learn,如何将经过培训的scikit学习管道保存到本地文件?官方文件说: 但是当试图保存管道时,我得到了一个错误。例如: estimators = [ ('tfidf', TfidfVectorizer(tokenizer=lambda string: string.split(), min_df=20, max_df=0.75,
estimators = [
('tfidf', TfidfVectorizer(tokenizer=lambda string: string.split(),
min_df=20,
max_df=0.75,
ngram_range=(1,1))),
('clf', RandomForestClassifier(n_estimators=100,
n_jobs=-1,
class_weight='balanced'))
]
p = Pipeline(estimators)
p.fit(x_train, y_train)
model = 'model.joblib'
joblib.dump(p, model)
但是,我收到错误消息“PicklingError:无法在0x7f4c9f1e50d0>处进行pickle:找不到它作为main”
我怎样才能解决这个问题?对不起,各位问了这个问题。我找到了解决办法: 不过,并非所有内容都可以(轻松地)进行pickle:例如生成器、内部类、lambda函数和defaultdict。对于lambda函数,您需要使用一个名为dill的附加包。对于defaultdicts,您需要使用模块级函数创建它们
来源:您是否尝试了
json.dump
而不是joblib?然后您可以关闭它。(尽管我认为其中一些线程是开放的,以供参考)