关于joblib.dump()的混淆



保存sklearn模型的一种方法是使用joblib.dump(model,filename)。我对文件名参数感到困惑。运行此函数的一种方法是:

joblib.dump(model,"model.joblib")

这将成功保存模型,并且使用:

正确加载模型
model=joblib.load("model.joblib")

另一种方法是:

joblib.dump(model,"model")

没有". jobblib"这次是延期。这也会成功运行,并且使用:

正确加载模型
model=joblib.load("model")

让我困惑的是文件名中的文件扩展名,我应该使用某个文件扩展名来保存模型吗?或者不需要像上面那样使用文件扩展名?如果没有必要,那为什么呢?

没有必须"用于序列化模型。您可以通过使用支持的文件名扩展名之一(.z,.gz,.bz2,.xz.lzma)来指定压缩方法。默认情况下,joblib将使用zlib来序列化对象。

因此您可以使用任何文件扩展名。然而,使用库作为扩展是一个很好的做法,以便知道如何加载它。

我使用pickle库时将我的序列化模型命名为model.pickle,使用joblib时将其命名为model.joblib

最新更新