我是否可以使用 .pkl 文件,即使它给我一个 DepreciationWarning?
Can I use a .pkl file even if it gives me a DepreciationWarning?
我正在研究其他人的文档不足的代码(它使用 tf-idf 来查找文档集群),我遇到了这个:
from sklearn.externals import joblib
#joblib.dump(km, 'doc_cluster.pkl')
km = joblib.load('doc_cluster.pkl')
clusters = km.labels_.tolist()
它应该解开 doc_cluster.pkl,但是当我 运行 它时,我收到一个 DepreciationWarning 说文件是用低于 0.10 的 joblib 版本生成的,它要求我重新生成文件。但是,我不能那样做,因为我没有创建 doc_cluster.pkl。那么继续前进并忽略警告是否可以,否则会把事情搞砸吗?
弃用警告只是一个警告,加载成功。 pickle 文件仍在加载和支持中,至少在这个版本的 sklearn 中(它捆绑了第 3 方 joblib
project)。 joblib
的未来版本可能会停止支持该特定格式,但这还没有发生。
您可以使用当前版本重新创建 pickle 文件,只需将相同的对象转储回磁盘即可:
km = joblib.load('doc_cluster.pkl')
joblib.dump(km, 'doc_cluster.pkl', compress=True)
另见 joblib
persistence documentation。
或者,您可以通过使用警告过滤器来抑制警告。您可以直接在 PYTHONWARNINGS
environment variable, with the -W
command-lne switch (I'd use the string ignore::DeprecationWarning:sklearn.externals.joblib
), or by using the warnings
module 中设置过滤器:
import warnings
warnings.filterwarnings(
"ignore", category=DeprecationWarning,
module=r'sklearn\.externals\.joblib'
)
弃用警告只是告诉您您使用的代码已在包中更新并且有更好/更有效的编写程序的方法的警告。该软件包仍然支持它,只是知道在未来的软件包更新中,现在可能会支持旧功能。
我正在研究其他人的文档不足的代码(它使用 tf-idf 来查找文档集群),我遇到了这个:
from sklearn.externals import joblib
#joblib.dump(km, 'doc_cluster.pkl')
km = joblib.load('doc_cluster.pkl')
clusters = km.labels_.tolist()
它应该解开 doc_cluster.pkl,但是当我 运行 它时,我收到一个 DepreciationWarning 说文件是用低于 0.10 的 joblib 版本生成的,它要求我重新生成文件。但是,我不能那样做,因为我没有创建 doc_cluster.pkl。那么继续前进并忽略警告是否可以,否则会把事情搞砸吗?
弃用警告只是一个警告,加载成功。 pickle 文件仍在加载和支持中,至少在这个版本的 sklearn 中(它捆绑了第 3 方 joblib
project)。 joblib
的未来版本可能会停止支持该特定格式,但这还没有发生。
您可以使用当前版本重新创建 pickle 文件,只需将相同的对象转储回磁盘即可:
km = joblib.load('doc_cluster.pkl')
joblib.dump(km, 'doc_cluster.pkl', compress=True)
另见 joblib
persistence documentation。
或者,您可以通过使用警告过滤器来抑制警告。您可以直接在 PYTHONWARNINGS
environment variable, with the -W
command-lne switch (I'd use the string ignore::DeprecationWarning:sklearn.externals.joblib
), or by using the warnings
module 中设置过滤器:
import warnings
warnings.filterwarnings(
"ignore", category=DeprecationWarning,
module=r'sklearn\.externals\.joblib'
)
弃用警告只是告诉您您使用的代码已在包中更新并且有更好/更有效的编写程序的方法的警告。该软件包仍然支持它,只是知道在未来的软件包更新中,现在可能会支持旧功能。