python - sklearn.externals joblib 抛出 ImportError - 服务器上没有名为 joblib.numpy_pickle 的模块
问题描述
我正在努力解决工作库问题。
我需要将推理应用程序推送到远程服务器,我还需要加载一个保存的标准缩放器,因为如果我尝试适应,我会遇到内存不足的异常。我无法对服务器进行物理更改,因为它是一个sap cloud Foundry 实例,我看不到解决它的方法。
来自服务器的回溯:
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR File "app.py", line 40, in <module>
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR standard_scaler = joblib.load('./datascaler.save')
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR File "/home/vcap/deps/0/python/lib/python2.7/site-packages/sklearn/externals/joblib/numpy_pickle.py", line 598, in load
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR obj = _unpickle(fobj, filename, mmap_mode)
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR File "/home/vcap/deps/0/python/lib/python2.7/site-packages/sklearn/externals/joblib/numpy_pickle.py", line 526, in _unpickle
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR obj = unpickler.load()
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR File "/home/vcap/deps/0/python/lib/python2.7/pickle.py", line 864, in load
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR dispatch[key](self)
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR File "/home/vcap/deps/0/python/lib/python2.7/pickle.py", line 1096, in load_global
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR klass = self.find_class(module, name)
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR File "/home/vcap/deps/0/python/lib/python2.7/pickle.py", line 1130, in find_class
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR __import__(module)
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR ImportError: No module named joblib.numpy_pickle
从我在类似帖子中看到的情况来看,joblib 版本冲突/不匹配可能是一个原因,但我对此无能为力,因为它不是我的本地机器出现此错误。
有没有其他方法可以保存缩放器,或者解决这个冲突?
解决方案
我也遇到了这个问题。可能有两个原因。
sklearn.externals.joblib
加载时保存的模式joblib
。(sklearn.externals.joblib 和 joblib 是不同的库)两者
sklearn.externals.joblib
都用于保存和加载阶段。但是,它们是不同的scikit-learn
版本。例如,在保存阶段scikit-learn==0.19.1
,而在加载阶段scikit-learn==0.21.x
。
修复它的最佳方法是使用具有相同版本的 joblib。sklearn.externals.joblib 将在未来版本中删除。
推荐阅读
- javascript - ToolTip 动态调整大小
- javascript - 如何将动态设置的 HTML 的 CSS 封装在 div 中,使其不影响外部元素?
- google-cloud-speech - c# google Speech to text api 结果质量不好
- swift - Swift:解析服务器登录 facebook 无法检索邮件
- kotlin - 等效于 Java 的“公共静态最终字符串”
- c# - 基于属性的 LINQ 相交
- ios - 无法使用 Google Map SDK iOS 绘制 GMSPolyline
- java - Matlab中YARP的使用方法
- android - 将firebase添加到项目后同步失败
- mysql - 如何利用join做一个简单的报表