我正在处理其他人文档不完善的代码(它使用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,该文件表示该文件的Joblib版本小于0.10,并要求我重新生成该文件。但是,我不能这样做,因为我没有创建doc_cluster.pkl。那么,只是向前走而不理会警告是可以的吗?还是会把事情搞得一团糟?
答案 0 :(得分:2)
弃用警告是警告,并且加载成功。至少在此版本的sklearn(捆绑了第三方joblib
project)中,仍然仍在加载和支持pickle文件。 joblib
的未来版本可能会停止支持该特定格式,但尚未实现。
只需将同一对象转储回磁盘,即可使用当前版本重新创建泡菜文件:
km = joblib.load('doc_cluster.pkl')
joblib.dump(km, 'doc_cluster.pkl', compress=True)
另请参阅joblib
persistence documentation。
或者,您可以通过使用警告过滤器来禁止显示警告。您可以在PYTHONWARNINGS
environment variable中使用-W
command-lne switch(我将使用字符串ignore::DeprecationWarning:sklearn.externals.joblib
)或直接使用warnings
module来设置过滤器:
import warnings
warnings.filterwarnings(
"ignore", category=DeprecationWarning,
module=r'sklearn\.externals\.joblib'
)
答案 1 :(得分:1)
弃用警告仅是警告,告诉您软件包中的使用代码已更新,并且有一种更好/更有效的编写程序的方式。该软件包仍然支持它,只是知道在将来对该软件包的更新中可能会支持旧功能。